断层
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M
64bit IO Format: %lld

题目描述

译者水平有限,跪求各位大佬提供更好的译文

本题译自 JOI 2016 Final T5「断層
很久很久以前,一个叫做IOI的先进文明蓬勃发展。时过境迁,现代考古学家JOI博士决定挖掘IOI文明遗址。
IOI文明沿着笔直的河流发展。方便起见,IOI文明遗址可以看作平面直角坐标系的x轴,而y轴表示海拔。IOI文明地面平坦,也就是说,直线y=0代表地面,而y>0代表地面上空,代表地下。另外,由于流水堆积,IOI文明的地面一直在缓慢升高。IOI文明灭亡前a年时,直线y=-a才是地平面。
IOI文明灭亡后,它脚下的地层发生了Q次运动。第i次运动可用位置X_i,方向D_i和变化量L_i描述。或2。具体来说,
  • :断层视为一条过(X_i,0),斜率为1的直线。断层上方的地层斜向上移动,横坐标增加L_i,纵坐标增加L_i。也就是说,直线上方的所有点(x,y)移动到
  • :断层视为一条过(X_i,0),斜率为-1的直线。断层上方的地层斜向上移动,横坐标减少L_i,纵坐标增加L_i。也就是说,直线上方的所有点(x,y)移动到
每次地壳运动后,y>0的地层都会因风化作用而消失。
试求:对于每一个点(i-1,0)和点(i,0)之间的地层是在IOI文明灭亡前哪一年的地层。
在y轴上,断层都是经过整点的,y轴上的相邻整点间没有断层。这样讲能明白吧……

输入描述:

第一行有两个整数N,Q,用空格分隔。
在接下来的Q行中,第i行有三个整数X_i,D_i,L_i,用空格分隔。
输入的所有数的含义见题目描述。

输出描述:

输出共N行,第i行有一个整数,表示点(i-1,0)和点(i,0)之间的地层是在IOI文明灭亡前哪一年的地层。
示例1

输入

复制
10 2
12 1 3
2 2 2

输出

复制
3
3
5
5
5
5
5
5
2
2
示例2

输入

复制
10 6
14 1 1
17 1 1
-6 2 1
3 2 1
4 1 1
0 2 1

输出

复制
5
5
4
5
5
5
5
5
4
4
示例3

输入

复制
15 10
28 1 7
-24 2 1
1 1 1
8 1 1
6 2 1
20 1 3
12 2 2
-10 1 3
7 2 1
5 1 2

输出

复制
15
14
14
14
14
12
12
12
12
12
12
12
15
15
12

备注:

对于所有数据,

CC-BY-SA,感谢LOJ分享,译文来自https://loj.ac/problem/2346