#ABC347E. 集合加和查询

集合加和查询

集合加和查询

题目描述

有一个长度为 NN 的整数数列 A=(A1,A2,,AN)A=(A_1,A_2,\ldots,A_N),所有元素初始均为 00。还有一个集合 SS,初始为空。

请按顺序执行以下 QQ 个查询。处理完所有 QQ 个查询后,求出数列 AA 的每个元素的值。第 ii 个查询的格式如下:

给定整数 xix_i。如果 xix_iSS 中,则将 xix_iSS 中移除;否则,将 xix_i 插入 SS。然后,对于每个满足 jSj\in Sj=1,2,,Nj=1,2,\ldots,N,将 S|S| 加到 AjA_j

这里,S|S| 表示集合 SS 中元素的个数。例如,若 S={3,4,7}S=\lbrace 3,4,7\rbrace,则 S=3|S|=3

输入格式

输入按以下格式从标准输入给出:

NN QQ
x1x_1 x2x_2 \ldots xQx_Q

输出格式

以如下格式输出处理完所有查询后的数列 AA:

A1A_1 A2A_2 \ldots ANA_N

样例

3 4
1 3 3 2
6 2 2

在第一个查询中,将 11 插入 SS,S={1}S=\lbrace 1\rbrace。然后,将 S=1|S|=1 加到 A1A_1。数列变为 A=(1,0,0)A=(1,0,0)

在第二个查询中,将 33 插入 SS,S={1,3}S=\lbrace 1,3\rbrace。然后,将 S=2|S|=2 加到 A1A_1A3A_3。数列变为 A=(3,0,2)A=(3,0,2)

在第三个查询中,将 33SS 中移除,S={1}S=\lbrace 1\rbrace。然后,将 S=1|S|=1 加到 A1A_1。数列变为 A=(4,0,2)A=(4,0,2)

在第四个查询中,将 22 插入 SS,S={1,2}S=\lbrace 1,2\rbrace。然后,将 S=2|S|=2 加到 A1A_1A2A_2。数列变为 A=(6,2,2)A=(6,2,2)

最终,数列变为 A=(6,2,2)A=(6,2,2)

4 6
1 2 3 2 4 2
15 9 12 7

数据范围

  • 1N,Q2×1051 \leq N,Q \leq 2 \times 10^5
  • 1xiN1 \leq x_i \leq N
  • 所有输入值均为整数。
难度 提高
通过率
尝试 0
已通过 0
ID
3253
类型
传统题
Time Limit
2000ms
Memory Limit
1024MiB
上传者
标签