#NOI2021C. 庆典 (Celebration)

庆典 (Celebration)

题目描述

CC 国是一个繁荣昌盛的国家,它由 nn 座城市和 mm 条有向道路组成,城市从 11nn 编号。如果从 xx 号城市出发,经过若干条道路后能到达 yy 号城市,那么我们称 xx 号城 市可到达 yy 号城市,记作 xyx ⇒ yCC 国的道路有一个特点:对于三座城市 xyzx,y,z,若 xzx ⇒ zyzy ⇒ z,那么有 xyx ⇒ yyxy ⇒ x

再过一个月就是 CC 国成立的千年纪念日,所以 CC 国的人民正在筹备盛大的游行庆典。目前 CC 国得知接下来会有 qq 次游行计划,第 ii 次游行希望从城市 sis_i 出发,经过若干个城市后,在城市 tit_i 结束,且在游行过程中,一个城市可以被经过多次。为了增加游行的乐趣,每次游行还会临时修建出 k0k2k(0 \le k \le 2)条有向道路专门供本次游行使用,即其他游行计划不能通过本次游行修建的道路。

现在 C 国想知道,每次游行计划可能会经过多少座城市

注意:临时修建出的道路可以不满足 CC 国道路原有的特点

输入格式

从文件 celebration.in 中读入数据。

第一行包含四个整数 n,m,q,kn, m, q, k,分别表示城市数、道路数、游行计划数以及每次游行临时修建的道路数。接下来 mm 行,每行包含两个整数 u,vu, v,表示一条有向道路 uvu → v

接下来 qq 行,每行前两个整数 si,tis_i , t_i,表示每次游行的起点与终点;这行接下来有 kk 对整数 a,ba, b,每对整数表示一条临时添加的有向道路 aba → b

数据保证,将 CC 国原有的有向道路视为无向道路后,所有城市可以互达。

输出格式

输出到文件 celebration.out 中。

对于每次询问,输出一行一个整数表示答案。如果一次游行从起点出发无法到达终点,输出 00 即可。

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

样例解释 1

11 次计划,起点为 11 号点,终点为 44 号点,临时修建道路为 515 → 1,最终可能经 过的城市编号为 {1,2,4,5}\{1, 2, 4, 5\}

22 次计划,起点为 22 号点,终点为 33 号点,临时修建道路为 535 → 3,最终可能经 过的城市编号为 {2,3,4,5}\{2, 3, 4, 5\}

33 次计划,起点为 11 号点,终点为 22 号点,临时修建道路为 525 → 2,最终可能经 过的城市编号为 {1,2,4,5}\{1, 2, 4, 5\}

44 次计划,起点为 33 号点,终点为 44 号点,临时修建道路为 515 → 1,最终从 33 号 点出发无法到达 44 号点。

样例 2

见选手目录下的 celebration2.incelebration2.ans

该样例约束与测试点 575 \sim 7 一致。

样例 3

见选手目录下的 celebration3.incelebration3.ans

该样例约束与测试点 101110 \sim 11 一致。

样例 4

见选手目录下的 celebration4.incelebration4.ans

该样例约束与测试点 151615 \sim 16 一致。

样例 5

见选手目录下的 celebration5.incelebration5.ans

该样例约束与测试点 202520 \sim 25 一致。

数据规模与约定

对于所有测试点,1n,q3×1051 \le n, q \le 3 \times 10^5n1m6×105n − 1 \le m \le 6 \times 10^50k20 \le k \le 2

测试点编号 n,qn,q\le kk 特殊性质
141\sim4 55 =0=0
575\sim7 10001000 5\le5
898\sim9 3×1053\times10^5 =0=0 m=n1m=n-1
101110\sim11 =1=1
121412\sim14 =2=2
151615\sim16 =0=0
171917\sim19 =1=1
202520\sim25 =2=2