AT_agc031_f [AGC031F] Walk on Graph
Description
[problemUrl]: https://atcoder.jp/contests/agc031/tasks/agc031_f
$ N $ 頂点 $ M $ 辺の連結なグラフが与えられます.各頂点には $ 1,\ 2,...,N $ と番号がついています. $ i(1\ \leq\ i\ \leq\ M) $ 番目の辺は頂点 $ A_i $ と頂点 $ B_i $ を繋ぐ長さ $ C_i $ の無向辺です. また,奇数 $ MOD $ が与えられます.
$ Q $ 個のクエリが与えられるので,処理してください.クエリの形式は以下の通りです.
- $ i $ 番目のクエリでは,$ S_i,T_i,R_i $ が与えられる.頂点 $ S_i $ から頂点 $ T_i $ へ至る経路であって,長さを $ MOD $ で割った余りが $ R_i $ になるようなものが存在する場合は `YES` を,存在しない場合は `NO` を出力する.ただし同じ辺を複数回通っても,来た辺をすぐ戻ってもよい.
ただし,この問題においての経路の長さは辺の長さの単純な和**ではなく**,$ 1 $ 本目に使う辺の長さを $ 1 $ 倍,$ 2 $ 本目に使う辺の長さを $ 2 $ 倍,$ 3 $ 本目に使う辺の長さを $ 4 $ 倍,$ ... $ したものの和とします. (より厳密には,長さ $ L_1,...,L_k $ の辺をこの順に使ったとすると,その経路の長さは $ L_i\ \times\ 2^{i-1} $ の和です.)
Input Format
N/A
Output Format
N/A
Explanation/Hint
### 制約
- $ 1\ \leq\ N,M,Q\ \leq\ 50000 $
- $ 3\ \leq\ MOD\ \leq\ 10^{6} $
- $ MOD $ は奇数
- $ 1\ \leq\ A_i,B_i\leq\ N $
- $ 0\ \leq\ C_i\ \leq\ MOD-1 $
- $ 1\ \leq\ S_i,T_i\ \leq\ N $
- $ 0\ \leq\ R_i\ \leq\ MOD-1 $
- 与えられるグラフは連結 (ただし自己辺や多重辺を含むことがある)
### Sample Explanation 1
各クエリに対する答えは以下のようになります. - $ 1 $ 番目のクエリ: 頂点 $ 1,2,3 $ の順に進むと経路の長さは $ 1\ \times\ 2^0\ +\ 2\ \times\ 2^1\ =\ 5 $ となり,長さを $ 2019 $ で割った余りが $ 5 $ になる経路は存在するので,答えは `YES` である. - $ 2 $ 番目のクエリ: どのように頂点 $ 1 $ から頂点 $ 3 $ まで進んでも経路の長さを $ 2019 $ で割った余りが $ 4 $ となることはないので,答えは `NO` である.