#5046. Set Add Query

0

Set Add Query

Set Add Query

题目描述

有一个长度为 NN 的整数序列 A=(A1,A2,…,AN)A=(A_1,A_2,\ldots,A_N),所有元素初始都设为 00。另外,有一个集合 SS,初始为空。 按顺序执行下面的 QQ 个查询。请在处理完所有 QQ 个查询后,求序列 AA 中每个元素的值。第 ii 个查询格式如下:

给定一个整数 xix_i。如果整数 xix_i 已包含在 SS 中,则将 xix_i 从 SS 中移除。否则,将 xix_i 插入到 SS 中。然后,对于每个 j=1,2,…,Nj=1,2,\ldots,N,如果 j∈Sj\in S,则对 AjA_j 加上 ∣S∣|S|。

这里,∣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
4 6
1 2 3 2 4 2
15 9 12 7

提示

1≤N,Q≤2×1051\leq N,Q\leq 2\times10^5 1≤xi≤N1\leq x_i\leq N 所有给定的数均为整数。在第一个查询中,将 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_1 和 A3A_3。序列变为 A=(3,0,2)A=(3,0,2)。 在第三个查询中,将 33 从 SS 中移除,得到 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_1 和 A2A_2。序列变为 A=(6,2,2)A=(6,2,2)。 最终,序列变为 A=(6,2,2)A=(6,2,2)。

标签: AtCoder|abc347E

来源

AtCoder|abc347E