#P12585. [集训队互测 2024day17]区间切割

[集训队互测 2024day17]区间切割

nn 个区间 [Li,Ri][L_i,R_i],然后有 mm 次切割操作,每次操作由三元组 (x,l,r)(x,l,r) 描述,对 i[l,r]i\in [l,r] 进行如下操作:

  • 如果 x∉[Li,Ri]x\not\in [L_i,R_i],什么都不做。
  • 否则区间 ii 将被切割为 [Li,x][L_i,x][x,Ri][x,R_i] 两段,用较长的一段作为新的区间 ii,如果长度相等选择 [Li,x][L_i,x]

求出每个区间在所有操作后的左右端点。为了简化问题,保证所有 xx 构成 1m1\sim m 的排列。

输入格式

第一行包含三个整数 n,m,idn,m,id (1n105,1m106,0id71\le n\le 10^5,1\le m\le 10^6,0\le id\le 7),其中 idid 表示子任务编号,样例中 id=0id=0

接下来 nn 行,每行包含两个整数 Li,RiL_i,R_i (1Li<Rim1\le L_i<R_i\le m),表示区间 ii 的左右端点。

接下来 mm 行,每行包含三个整数 x,l,rx,l,r (1xm,1lrn1\le x\le m,1\le l\le r\le n),表示一次切割操作。保证所有 xx 构成 1m1\sim m 的排列。

输出格式

nn 行,第 ii 行包含两个整数表示线段 ii 最终的左右端点。

样例输入 #1
1 4 0
1 4
1 1 1
4 1 1
3 1 1
2 1 1
样例输出 #1
1 2
样例输入 #2
5 5 0
2 3
4 5
1 4
2 5
2 4
1 5 5
2 5 5
3 1 1
5 4 5
4 2 2
样例输出 #2
2 3
4 5
1 4
2 5
2 4
样例输入/输出 #3

ex_cut3.in/out,满足子任务 22 的限制。

样例输入/输出 #4

ex_cut4.in/out,满足子任务 33 的限制。

数据范围

对于全部数据

1n105,1m1061\le n\le 10^5,1\le m\le 10^6

1Li<Rim,1xm,1lrn1\le L_i<R_i\le m,1\le x\le m,1\le l\le r\le n,保证所有 xx 构成 1m1\sim m 的排列。

子任务 分值 nn\le mm\le 特殊性质
1 5 50005000
2 15 1600016000 2×1052\times 10^5 AB
3 10510^5 10610^6 A
4 1600016000 2×1052\times 10^5 B
5 10 10510^5 10610^6
6 20 1600016000 2×1052\times 10^5
7 10510^5 10610^6

特殊性质 AA:所有 xx 构成 1m1\sim m 的随机排列。

特殊性质 BB:每次操作的 l=1,r=nl=1,r=n