列表

详情


NC53248. 比太郎的聚会

描述

译自 JOISC 2018 Day3 T2「ビ太郎のパーティー / Bitaro’s Party

河狸们有N个城镇,这些城镇按照海拔从高到低依次编号为(保证海拔互不相同)。有M条运河,i号运河从城镇S_i流向E_i。河狸们不能沿着运河逆流而上,即:河狸不能从城镇E_i通过i号运河前往城镇S_i
河狸比太郎有在每个城镇各有一位朋友。比太郎打算举办Q场聚会。第j场聚会在城镇T_j进行,已知有Y_j名河狸因事无法参加。在剩下的河狸中,除非他无法从他所在的城镇到达T_j,否则他一定会来。
因为河狸们十分喜欢运河,所以他们会沿经过运河数目最多的一条路径参加聚会,比太郎想知道每次聚会经过运河数目最多的河狸会经过多少条运河。
任务
给定Q场聚会举行的城镇编号和因事无法参加的河狸列表,写一个程序求出参加每次聚会经过运河数目最多的河狸会经过多少条运河。

输入描述

从标准输入中读入如下内容:
输入的第一行包含三个用空格隔开的整数N,M,Q,表示有N个河狸城镇,M条运河,要举行Q场聚会;
接下来M行,第i行有两个用空格隔开的整数S_i,E_i,表示运河单向地从S_i流向E_i
接下来Q行,第j行包含一些整数,前两个用空格分开的整数T_j,Y_j,后面有Y_j个用空格隔开的整数,表示第j场聚会在T_j镇举行,住在的河狸因事不能来参加聚会。

输出描述

输出Q行,第j行包含一个整数,表示参加每次聚会经过运河数目最多的河狸会经过多少条运河。如果没有河狸能参加这场聚会,输出-1。

示例1

输入:

5 6 3
1 2
2 4
3 4
1 3
3 5
4 5
4 1 1
5 2 2 3
2 3 1 4 5

输出:

1
3
0

说明:

在参加第1场聚会的朋友中(住在2,3,4号城镇的河狸),在2或3号城镇的河狸会沿运河前往4号城镇,他们都将经过1条运河,所以输出1。
在参加第2场聚会的朋友中(住在1,4,5号城镇的河狸),在1号城镇的河狸会沿运河前往5号城镇,将经过3条运河,所以输出3。
在参加第3场聚会的朋友中(住在2号城镇的河狸),他没有经过运河到达2号城镇,因此输出0。

示例2

输入:

12 17 10
1 2
2 3
3 4
1 5
2 6
3 7
4 8
5 6
6 7
7 8
5 9
6 10
7 11
8 12
9 10
10 11
11 12
6 3 1 7 12
3 7 1 2 3 4 5 6 7
11 3 1 3 5
9 2 1 9
8 4 1 2 3 4
1 1 1
12 0
10 3 1 6 10
11 8 2 3 5 6 7 9 10 11
8 7 2 3 4 5 6 7 8

输出:

1
-1
3
1
3
-1
5
2
4
4

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

上一题