AT_kupc2012_6 Acceleration of Network
题目描述
互联网这片广阔的海洋逐渐被黑暗所覆盖。
机器人的叛乱,DDOS攻击的风暴,病毒的蔓延,
在与黑客反复交战的过程中,人类和互联网都变得支离破碎。
人类无法拯救互联网。
因此,人类花费了很长的时间,
创造了一个可以恢复互联网的“少女”。
少女开始治疗互联网。
她努力尝试修复广阔无边的互联网世界。
虽然少女目前只能进行一些基础工作,
但随着漫长的时间流逝,一旦互联网稍微恢复,
她就有望在大家的帮助下共同努力。
## 问题描述
少女每天都在努力,恢复互联网上曾经存在的 $ N $ 个服务。
将当前日期设定为第 0 天。
用“恢复度”作为一个指标来表示互联网的恢复程度,当前的恢复度为 0。
少女每天工作,每天的恢复度增加 1。
任何尚未恢复的服务 $ i $ ,当恢复度达到 $ w_i $ 以上时,该服务将自动恢复。
一旦服务 $ i $ 恢复,由于大家的帮助,从恢复的第二天开始,持续 $ x_i $ 天的工作将加快恢复度的增长。
服务分为三种类型,不同类型的服务增加恢复度的速度也不同。
将服务的类型用编号 0, 1, 2 表示。
设服务 $ i $ 的类型为 $ t_i (\in {0, 1, 2}) $ ,
则服务 $ i $ 恢复后的第 $ d-1 $ 天到第 $ d $ 天( $ 1 ≤ d ≤ x_i) $ ,
如果 $ t_i=0 $ ,则增加 1,
如果 $ t_i=1 $ ,则增加 $ d $ ,
如果 $ t_i=2 $ ,则增加 $ d^2 $ ,这些增加都是在少女的工作之外进行的。
此外,如果同时有多个服务恢复,每个服务都将独立并行地增加恢复度。
由于少女认为服务恢复需要很长时间,她决定从现在开始研究服务何时恢复。
另外,她也对某一天 $ y_j $ 的恢复度感兴趣,因此她决定研究 $ Q $ 天的情况。
输入格式
输入如下格式给出。
$ N Q $
$ w_1 $ $ t_1 $ $ x_1 $
$ ... $
$ w_N $ $ t_N $ $ x_N $
$ y_1 $
$ ... $
$ y_Q $
输出格式
首先输出 $ N $ 行,第 $ i $ 行输出服务 $ i $ 恢复的日期。然后输出 $ Q $ 行,第 $ j $ 行输出在第 $ y_j $ 天的恢复度。
如果服务恢复的日期超过 3,652,425 天,则输出`Many years later`。
### 约束
- $ 0 \leq N \leq 10^5 $
- $ 1 \leq Q \leq 10^5 $
- $ 0 \leq w_i \lt 2^{60} $
- $ w_i \leq w_{i+1} (1 \leq i \lt N) $
- $ t_i \in {0, 1, 2} $
- $ 1 \leq x_i \leq 10^4 $
- $ 0 \leq y_j \leq 3,652,425 $
- $ y_j \lt y_{j+1} (1 \leq j \lt Q) $
- 所有输入均为整数。
### 注意
- 第 0 天的恢复度为 0。
- 当 $ w_i=0 $ 时,服务 $ i $ 将在第 0 天恢复。
### 入出力示例
#### 输入示例1
```
3 11
1 0 2
4 1 3
7 2 4
0
1
2
3
4
5
6
7
8
9
10
```
#### 输出示例1
```
1
3
4
0
1
3
5
7
11
19
29
46
47
48
```
#### 输入示例2
```
5 5
10000 0 20
10000 1 30
10000 0 40
10000 2 70
30000 2 10000
5000
10000
15000
20000
25000
```
#### 输出示例2
```
10000
10000
10000
10000
10039
5000
10000
40711690801
329498273301
333383477320
```
#### 输入示例3
```
2 2
3652425 0 1
3652426 2 10000
3652424
3652425
```
#### 输出示例3
```
3652425
Many years later
3652424
3652425
```
作者:森槙悟
测试:田村和範
题目来源:[AtCoder](https://atcoder.jp/contests/kupc2012/tasks/kupc2012_6)