#ABC478D. 区间集合插入询问 / Range Set Insertion Query

区间集合插入询问 / Range Set Insertion Query

题目描述

有 NN 个集合 S1,S2,…,SNS_1,S_2,\ldots,S_N。最初,S1,S2,…,SNS_1,S_2,\ldots,S_N 都是空集合。

对这些集合进行 QQ 次如下操作。第 ii 次操作 (1≤i≤Q)(1\le i\le Q) 给出整数三元组 (Li,Ri,Xi)(L_i,R_i,X_i),并进行以下操作。

  • 对 SLi,SLi+1,…,SRiS_{L_i},S_{L_i+1},\ldots,S_{R_i} 添加 XiX_i。

请对所有 i=1,2,…,Ni=1,2,\ldots,N,求出所有操作结束后的 SiS_i 的元素个数。

输入格式

输入按以下格式从标准输入读入:

  • NN QQ
  • L1L_1 R1R_1 X1X_1
  • L2L_2 R2R_2 X2X_2
  • ⋮\vdots
  • LQL_Q RQR_Q XQX_Q

输出格式

请按顺序输出所有 QQ 次操作结束后的 S1S_1 的元素个数、S2S_2 的元素个数、…\ldots、SNS_N 的元素个数,用空格分隔。

8 5
2 5 1
1 4 2
7 8 1
3 6 3
2 5 2
1 2 3 3 3 1 1 1

进行 55 次操作后,各个集合分别为 $\lbrace2\rbrace,\lbrace1,2\rbrace,\lbrace1,2,3\rbrace,\lbrace1,2,3\rbrace,\lbrace1,2,3\rbrace,\lbrace3\rbrace,\lbrace1\rbrace,\lbrace1\rbrace$。因此,请按顺序输出它们的元素个数 1,2,3,3,3,1,1,11,2,3,3,3,1,1,1,用空格分隔。

30 20
3 22 11
8 30 10
12 14 7
2 17 4
1 19 12
7 30 15
11 23 2
14 25 17
9 12 7
10 16 7
16 18 19
1 11 14
11 15 4
1 21 6
4 8 10
23 24 11
8 27 10
1 19 12
23 23 16
13 24 12
3 4 5 6 6 6 7 7 8 8 9 8 8 9 9 10 9 8 7 7 7 6 7 5 3 2 2 2 2 2

数据范围

  • 1≤N≤2×1051\le N\le2\times10^5

  • 1≤Q≤2×1051\le Q\le2\times10^5

  • 1≤Li≤Ri≤N (1≤i≤Q)1\le L_i\le R_i\le N\ (1\le i\le Q)

  • 1≤Xi≤Q (1≤i≤Q)1\le X_i\le Q\ (1\le i\le Q)

  • 输入均为整数。

  • 来源:AtCoder ABC 478 D

子任务设置

  • 子任务 1(30 分):N,Q≤2000N, Q \le 2000。
  • 子任务 2(70 分):无特殊限制。