3435 - wall砖墙
时间限制 : 1 秒
内存限制 : 512 MB
给定一个长度为 n且初始值全为 0的序列。你需要支持以下两种操作:
- Add L, R, h:将序列 [L, R]内所有值小于 h的元素都赋为 h,此时不改变高度大于 h的元素值
- Remove L, R, h:将序列 [L, R]内所有值大于 h的元素都赋为 h,此时不改变高度小于 h的元素值
你需要输出进行 k次上述操作之后的序列。
输入
输入的第一行包含两个正整数 n, k,分别表示序列中元素的个数以及操作数量,注意:序列下标编号为 0 ~ n-1。
接下来 k行每行包含 4个整数 t, L, R, h,若 t = 1则表明为 Add 操作,若 t = 2则表明为 Remove 操作。 L, R, h的含义见题目描述。
输出
输出包含 n行,每行包含 1个整数。第 i行的整数表示 k次操作之后序列中编号为 i - 1的元素的值。
样例
输入
10 3 1 3 4 91220 1 5 9 48623 2 3 5 39412
输出
0 0 0 39412 39412 39412 48623 48623 48623 48623
输入
10 6 1 1 8 4 2 4 9 1 2 3 6 5 1 0 5 3 1 2 2 5 2 6 7 0
输出
3 4 5 4 3 3 0 0 1 0
提示
100%的数据满足: 1 \leq n \leq 2 000 000, 1 \leq k \leq 500 000。
所有操作的高度 h满足 0 \leq h \leq 100 000。