3128: 社交软件
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:0
解决:0
题目描述
在一个社交聊天软件里,有 �n 名用户,一开始,所有用户之间都不存在好友关系,接下来有 �m 条关于用户的操作记录:
- 第一种记录形式为 + x y,表示两名用户 �x 与 �y 结成了朋友关系;
- 第二种记录形式为 - x y,表示两名用户 �x 与 �y 解除了朋友关系;
- 第三种记录形式为 ! x,表示用户 �x 群发了一张照片,与 �x 为好友的用户可以收到这张照片。若某人在照片发出后才成为 �x 的好友,是收不到这张照片的。
经过这些操作之后,请统计并输出每一名用户收到了多少张照片。
输入
- 第一行:两个整数 �n 与 �m;
-
接下来 �m 行:每行表示一条操作记录,格式如题面所述。为了化简问题,特别保证:
- 当输入记录中出现 + x y 时,�x 与 �y 一定尚未结成好友关系
- 当输入记录中出现 - x y 时,�x 与 �y 一定已经结成好友关系
- 也就是说,这两类记录永远不是冗余的。
- 对于 30%30% 的数据,�≤2000n≤2000,�≤5000m≤5000。
- 对于 60%60% 的数据,�≤200,000n≤200,000,�≤500,000m≤500,000。
- 对于 100%100% 的数据,2≤�≤500,0002≤n≤500,000,1≤�≤1,000,0001≤m≤1,000,000。
输出
单独一行:�n 个整数,分别表示 �n 名用户收到的照片数量。
样例输入 复制
3 5
+ 1 2
! 1
- 1 2
! 1
! 3
样例输出 复制
0 1 0