1077 - 友だちになりましょう?

時間制限 1 秒 / メモリ制限 256 MB / 得点 14 / Writer r1825 / x 2 / 統計 /


TLE
1sec
MLE
256MB
得点
14

友好(有向)主義

ACできるようにしておきましょう。

問題

あなたは神仁(かみひと)である。あなたの周りにはn人の人間がいる。
神仁(かみひと)は神なので人aが人bを友人と思っているのかをO(1)で知ることができる。
しかし、このままでは計算量が少なく面白くないと考えたあなたは人aと人bが互いに友だちであるということを下記のように定義した。

(人aから人bが『つながっている』) かつ (人bから人aが『つながっている』)

ただし人xから人yが『つながっている』とは
(人xが人yを友人と思っている) または ( (人xから人zが『つながっている』) かつ (人zから人yが『つながっている』) ) こととする。
以上

このようなとき、人aと人bは互いに友だちだろうか。

入力

n m
s0 t0
......
sm-1 tm-1
q
a0 b0
......
aq-1 bq-1

一行目に周りにいる人間の数nと神仁が知っている友人と思っている関係の数mが与えられる。
続くm行にs, tが与えられる。これはsがtのことを友人と思っていることを示す。
その後qが与えられる。 続くq行にはa, bが与えられる。

出力

ans0
......
ansq-1

a, bが入力されるたびに人aと人bが互いに友だちであるかを判定し、互いに友だちならばYes, 違えばNoを一行に表示せよ。

制約

$5$ ≤ $n$ ≤ $10 000$
$0$ ≤ $m$ ≤ $min(100 000, n*(n-1)/2)$
$5$ ≤ $q$ ≤ $1 000 000$
$0$ ≤ $s$i, $t$i, $a$j, $b$j < $n$
$0$ ≤ $i$ < $m$
$0$ ≤ $j$ < $q$

テストケース

例1

入力

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

出力

Yes
No
Yes
Yes

結局O(1)なんですけどね。