#4288. 分配(Distribution)

分配(Distribution)

题目描述

NN个人站成一个圆圈,按逆时针顺序编号为Snuke 11,Snuke 22, ...,Snuke NN。当Snuke i(1iN)i (1 ≤ i ≤ N) 在时间tt收到一颗宝石时,它会在t+Sit+S_i时间将该宝石交给Snuke i+1i+1。这里,Snuke N+1N+1就是Snuke 11。此外,小高会在时间TiT_i时给Snuke ii一颗宝石。

对于每个i(1iN)i (1 ≤ i ≤ N),找出Snuke ii第一次收到宝石的时间。假设交接宝石的时间可以忽略不计。

输入格式

输入从标准输入中以下列格式给出:

NN

S1S_1 S2S_2 ... SNS_N

T1T_1 T2T_2 ... TNT_N

输出格式

输出NN行。第ii(1iN)(1 ≤ i ≤ N)应包含Snuke ii第一次收到宝石的时间。

样例

3
4 1 5
3 10 100
3
7
8
4
100 100 100 100
1 1 1 1
1
1
1
1
4
1 2 3 4
1 2 4 7
1
2
4
7
8
84 87 78 16 94 36 87 93
50 22 63 28 91 60 64 27
50
22
63
28
44
60
64
27

样例解释

【样例1说明】
下面按时间顺序列出时间13之前小高和Snuke之间的行动。

时间3:小高给Snuke 11一颗宝石。
时间7:Snuke 11给Snuke 22一颗宝石。
时间8:Snuke 22给Snuke 33一颗宝石。
时间10:小高给Snuke 22一颗宝石。
时间11:Snuke 22给Snuke 33一颗宝石。
时间13:Snuke 33给Snuke 11一颗宝石。

之后,他们会继续传递宝石,尽管这与答案无关。
【样例2说明】
注意SiS_iTiT_i的值可能不是唯一的。
【样例3说明】
注意一个Snuke可能同时进行多个交易。特别是,一个Snuke可能同时从小高和另一个Snuke那里收到宝石。

数据范围

  • 1N2000001 ≤ N ≤ 200000
  • 1Si,Ti1091 ≤ S_i,T_i ≤ 10^9
  • 所有输入值都是整数。

来源

  • AtCoder ABC214C