编程题
推销员
### 题目描述
阿明是一名推销员,他奉命到螺丝街推销他们公司的产品。螺丝街是一条死胡同,出口与入口是同一个,街道的一侧是围墙,另一侧是住户。螺丝街一共有 $N$ 家住户,第 $i$ 家住户到入口的距离为 $S_i$ 米。由于同一栋房子里可以有多家住户,所以可能有多家住户与入口的距离相等。阿明会从入口进入,依次向螺丝街的 $X$ 家住户推销产品,然后再原路走出去。
阿明每走 1 米就会积累 1 点疲劳值,向第 $i$ 家住户推销产品会积累 $A_i$ 点疲劳值。阿明是工作狂,他想知道,对于不同的 $X$,在不走多余的路的前提下,他最多可以积累多少点疲劳值。
### 输入描述
第一行有一个正整数 $N$,表示螺丝街住户的数量。数据保证 $1 \leq N \leq 10^5$。
接下来的一行有 $N$ 个正整数,其中第 $i$ 个整数 $S_i$ 表示第 $i$ 家住户到入口的距离。数据保证 $S_1 \leq S_2 \leq ... \leq S_n<10^8$。
接下来的一行有 $N$ 个正整数,其中第 $i$ 个整数 $A_i$ 表示向第 $i$ 户住户推销产品会积累的疲劳值。数据保证 $A_i<10^3$。
### 输出描述
输出 $N$ 行,每行一个正整数,第 $i$ 行整数表示当 $X=i$ 时,阿明最多积累的疲劳值。
### 输入输出样例
#### 示例 1
> 输入
```txt
5
1 2 3 4 5
1 2 3 4 5
```
> 输出
```txt
15
19
22
24
25
```
#### 示例 2
> 输入
```txt
5
1 2 2 4 5
5 4 3 4 1
```
> 输出
```txt
12
17
21
24
27
```