已结束 GESP巅峰赛#19

A4811 | 公告

时间限制1s
内存限制128MB
通过 / 提交0/0

题目描述

Alice 是高二(3)班的班长。今天老师布置了一项紧急通知,需要 Alice 通过班级群转达给所有同学。

已知班级中每个同学可能属于多个「小群」(例如同桌群、社团群等),且消息传播规则如下:
1. 初始传播:Alice 将消息发至自己所在的所有群。
2. 转发规则:当某同学在某个群中收到消息时,会立即检查自己所属的其他所有群:
- 如果某个群从未收到过该消息,则该同学会将消息转发到这个群。
- 每个群仅接收第一次收到的消息(后续重复消息忽略)。

现在已知有 $n$ 位同学,编号分别为 $1, \dots , n$ ,其中班长的编号为 1。 一共有 $m$ 个小群,第 $i$ 个小群有 $num_i$ 个人。现在我们希望知道这个班最终有多少人没有收到消息。

这个问题比较简单,现在班长想知道,假如某些同学从某些群聊里面退出,可能会有多少人收不到消息,(这里规定如果同学退出了群聊,就不会回到群聊中去)

输入格式

第一行包含三个整数 $n$ 、 $m$ 、 $q$,分别表示班级总人数和同学群的数量,以及离开同学群的的人数( $2 \leq n, \leq 2\times10^5$, $1\leq m, q \leq 2\times10^5$ )。

接下来 $m$ 行,每行按如下格式描述一个同学群 $c_i$ 的成员构成: $k_i\ p_{i,1}\ p_{i,2}\ \cdots\ p_{i,k_i}$

其中:
- $k_i$ ( $1\leq k_i \leq n$ )代表该同学群的成员数。
- $p_{i,1},p_{i,2},\cdots,p_{i,k_i}$ ( $1 \leq p_{i,j} \leq n$ )代表着该学生群的学生编号 。
- $p_{i,j1} = p_{i,j2}$ 当且仅当 $j1=j2$

接下来会有 $q$ 行,每行有两个整数 $p_i$ , $c_i$ ,代表着同学 $p_i$ 离开了同学群 $c_i$ , (这里确保同学 $p_i$ 目前还在同学群 $c_i$)

对于所有的数据,保证 $\sum_{i = 1}^{m}k_i \leq 10^6$ 。

输出格式

输出 $q$ 行,在同学 $p_i$ 离开了同学群 $c_i$ 后,有多少人会得不到班长发送的消息。

输入输出样例

输入 #1
3 2 3
2 1 2
2 2 3
3 2
2 2
2 1
输出 #1
1
1
2
输入 #2
3 2 1
2 1 2
2 2 3
1 1
输出 #2
2
C++ 编辑器
输入
输出