跳转至

⭐⭐⭐

阿明是一名推销员,他奉命到螺丝街推销他们公司的产品。螺丝街是一条死胡同,出口与入口是同一个,街道的一侧是围墙,另一侧是住户。螺丝街一共有 \(N\) 家住户,第 \(i\) 家住户到入口的距离为 \(S_i\) 米。由于同一栋房子里可以有多家住户,所以可能有多家住户与入口的距离相等。阿明会从入口进入,依次向螺丝街的 \(X\) 家住户推销产品,然后再原路走出去。

阿明每走 \(1\) 米就会积累 \(1\) 点疲劳值,向第 \(i\) 家住户推销产品会积累 \(A_i\) 点疲劳值。阿明是工作狂,他想知道,对于不同的 \(X\),在不走多余的路的前提下,他最多可以积累多少点疲劳值。

cin >> n;
F(i, 1, n) cin >> s[i];
F(i, 1, n) cin >> a[i];
  • \(S_1 \le S_2 \le \cdots \le S_n <10^8\)
  • \(A_i<1000\)
  • \(1 \le N \le 10^5\)
F(i, 1, n) cout << ans[i];
Sample

5
1 2 3 4 5
1 2 3 4 5
15
19
22
24
25
5
1 2 2 4 5
5 4 3 4 1
12
17
21
24
27