JOI 合衆国には 1 から N までの番号が付けられた N 個の都市と, 1 から M までの番号が付けられた M 本の道路がある.道路 i ( \(1 \le i \le M\) ) は,都市 U i と都市 V i を双方向に結んでいる.
JOI 合衆国は 1 から K までの番号が付けられた K 個の州からなる.都市 j ( \(1 \le j \le N\) ) は州 S j に属している.また,どの州も少なくとも 1 つの都市を含む.
JOI 合衆国の産業大臣である K 理事長は,これから Q 回の交易を行いたいと考えている. k 番目の交易 ( \(1 \le k \le Q\) ) は,都市 A k から都市 B k にいくつかの道路や都市を通って特産品を輸送するというものである.ただし,この交易に協力してくれるのは州 S A k と 州 S B k のみ ( S A k = S B k の場合は州 S A k のみ) であり,これらの州に属していない都市を通ると特産品は盗まれてしまう.
K 理事長は特産品が盗まれないように交易を行うような輸送経路があるのかを調べたい.都市と道路の配置,州と交易の情報が与えられたとき,各交易について特産品を無事届けることが可能かを判定するプログラムを作成せよ.
2 ≦ N ≦ 400 000 .
1 ≦ M ≦ 400 000 .
\(1 \le K \le N\) .
1 ≦ U i < V i ≦ N ( \(1 \le i \le M\) ).
(U i , V i ) ≠ (U j , V j ) ( \(1 \le i < j \le M\) ).
1 ≦ S j ≦ K ( \(1 \le j \le N\) ).
すべての l ( \(1 \le l \le K\) ) について, S j = l となる j ( \(1 \le j \le N\)) が存在する.
1 ≦ Q ≦ 400 000 .
1 ≦ A k ≦ N ( \(1 \le k \le Q\) ).
1 ≦ B k ≦ N ( \(1 \le k \le Q\) ).
A k ≠ B k ( \(1 \le k \le Q\) ).
入力される値はすべて整数である.
( 5 点) N ≦ 1 000 , M ≦ 1 000 , Q ≦ 1 000 .
( 11 点) 州 l ( \(1 \le l \le K\) ) に属するすべての都市は,道路と州 l に属する都市のみを通って互いに行き来できる.
( 42 点) N ≦ 80 000 , M ≦ 80 000 , Q ≦ 80 000 .
( 42 点) 追加の制約はない.
採点に関する注意
すべての提出はジャッジシステム上で採点される.
提出されたソースコードは,小課題に対応するすべての採点用入力データについて正しい結果を返したとき,その小課題について正解と認められる.
各提出の得点は,提出されたソースコードについて正解と認められた小課題の得点の合計である.
この課題の得点は, この課題に対するすべての提出の得点の最大値 である.
現在の得点は「提出結果」タブの「自分の得点状況」から確認できる.
入力は以下の形式で標準入力から与えられる.
N M K
U 1 V 1
U 2 V 2
:
U M V M
S 1 S 2 ... S N
Q
A 1 B 1
A 2 B 2
:
A Q B Q
標準出力に Q 行で出力せよ. k 行目 ( \(1 \le k \le Q\) ) には, k 番目の交易において特産品を届けることが可能であれば 1 を,不可能であれば 0 を出力せよ.
4 3 2
1 2
2 3
3 4
1 2 1 2
3
1 2
1 3
1 4
1
0
1
4 2 1
1 3
2 4
1 1 1 1
4
1 2
1 3
2 3
2 4
0
1
0
1
6 5 3
1 2
3 4
5 6
1 4
3 5
1 1 2 2 3 3
4
1 4
1 5
3 6
4 3
1
0
1
1
8 11 3
4 8
1 8
4 6
3 5
2 4
7 8
6 7
3 4
1 4
2 3
3 8
2 3 1 1 2 1 2 1
10
8 2
8 1
2 7
5 3
5 7
4 8
1 8
6 8
6 5
1 8
1
1
0
1
0
1
1
1
1
1