만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

평범한 그래프와 이상한 쿼리

시간 제한2초메모리 제한1024 MB

요약
가중치가 있는 무방향 그래프에서 정점 a에서 b로 가는 경로 중 길이가 k의 배수인 것이 있는지 질의마다 판별합니다.
난이도

보통10점 중 7점

유형
DFS, 그래프, 정수론
정답자
아직 제출이 없습니다

문제

이 문제는 w_iw\_i의 제한을 제외하면 단순한 그래프와 이상한 쿼리 문제와 같은 문제이다.

정점 NN개와 간선 MM개로 이루어진 평범한 무향 가중치 그래프 GG가 주어진다. 정점은 1번부터 NN번까지 번호가 매겨져 있고, 각 간선의 가중치는 양의 정수이다. 다음과 같은 쿼리가 QQ개 주어진다.

  • a b k: aa번 정점에서 시작해 bb번 정점에서 끝나는 경로 중 길이가 kk의 배수인 경로가 존재하면 Yes를, 없으면 No를 출력한다.

경로에는 같은 정점이나 같은 간선이 여러 번 포함될 수 있다. 경로의 길이는 경로에 포함된 간선 가중치의 합이다. 같은 간선이 여러 번 포함되면 그 간선의 가중치가 지나간 횟수만큼 길이에 더해진다. 주어진 쿼리를 올바르게 처리하라.

입력

첫 번째 줄에 정점의 수 NN, 간선의 수 MM, 쿼리의 수 QQ가 공백으로 구분되어 주어진다. (2≤N≤100 000;0≤M≤200 000;1≤Q≤100 0002\le N\le 100\ 000; 0\leq M\leq 200\, 000; 1 \leq Q \leq 100\ 000)

두 번째 줄부터 MM개의 줄에 걸쳐 각 간선의 정보를 나타내는 정수 u_i,v_i,w_iu\_i, v\_i, w\_i가 공백으로 구분되어 주어진다. ii번째 간선은 가중치 w_iw\_i를 가지며 u_iu\_i와 v_iv\_i를 잇는다. 각 정점 쌍을 잇는 간선은 최대 1개임이 보장된다. (1≤u_i,v_i≤N;u_i≠v_i;1≤w_i≤1091\leq u\_i,v\_i\leq N; u\_i\neq v\_i; 1\leq w\_i\leq 10^9)

M+2M+2번째 줄부터 QQ개의 줄에 걸쳐 각 쿼리가 a b k의 형태로 주어진다. (1≤a,b≤N;a≠b;1≤k≤1091\leq a,b\leq N; a\neq b; 1\leq k\leq 10^9)

주어지는 수는 모두 정수이다.

출력

각 쿼리마다 aa번 정점에서 시작해 bb번 정점에서 끝나는 길이가 kk의 배수인 경로가 존재하면 Yes, 없으면 No를 한 줄에 하나씩 순서대로 출력한다.

예제1

  1. 예제 1

    입력
    5 4 4
    1 2 2
    1 3 4
    2 3 5
    4 5 3
    4 5 2
    1 2 3
    2 3 2
    1 4 1
    
    예상 출력
    No
    Yes
    Yes
    No