infinite XYZ

아직 제출이 없습니다시간 제한1초메모리 제한256 MB

문제

정점 NN개와 단방향 간선 MM개로 이루어져 있는 유향 그래프가 있다. 같은 출발점과 도착점 사이에 여러 개의 간선이 있을 수 있고, 간선의 출발점과 도착점이 같을 수 있다.

각 간선에는 x,y,zx, y, z 중 하나의 문자가 쓰여 있다. 이때, 한 정점에서 뻗어나오는 간선의 문자는 서로 겹치지 않는다.

이후 다음과 같은 쿼리가 주어진다.

  • ss ee cc : 주어진 그래프에 출발점이 ss이고 도착점이 eecc가 쓰여진 새로운 단방향 간선을 추가한다. 새로운 간선은 문자가 겹칠 수 있음에 유의하자. 이때, 어떤 점을 골라 그 점에서 시작해서 그래프 상에서 무한히 이동하는 것이 가능하다면 11, 그렇지 않으면 00을 출력한다.

그래프에서 이동할 때는 특별한 규칙을 따른다. 구체적으로, xx 간선 이후에는 yy 간선, yy 간선 이후에는 zz 간선, zz 간선 이후에는 xx 간선을 타고 이동해야 한다. 즉, xyzxyzxyzxyzxyzxyz\cdots,yzxyzxyzx yzxyzxyzx\cdots, zxyzxyzxyzxyzxyzxy\cdots의 방식으로만 이동할 수 있다.

쿼리 QQ개가 주어질 때, 이를 해결하는 프로그램을 작성해보자. 단, 각 쿼리는 독립적이며, 이전 쿼리에서 추가된 간선이 다음 쿼리에 적용되지 않는다.

입력

첫 번째 줄에 N,M,QN, M, Q가 주어진다.(1N1000001 \leq N \leq 100000, 1M3×N1 \leq M \leq 3 \times N, 1Q1000001 \leq Q \leq 100000)

이후 두 번째 줄부터 M+1M + 1번째 줄까지 그래프의 간선의 정보 S_i,E_i,C_iS\_i, E\_i, C\_i가 주어진다. 이는 S_iS\_i에서 E_iE\_i로 가는 C_iC\_i가 쓰여진 간선을 의미한다.(1S_i,E_iN1 \le S\_i, E\_i \le N, C_ix,y,zC\_i \in \\{x,y,z\\})

이후 M+2M + 2번째 줄부터 M+Q+1M + Q + 1번째 줄까지 쿼리의 정보 s,e,cs, e, c가 주어진다.(1s,eN1 \le s, e \le N, cx,y,zc \in \\{x,y,z\\})

출력

QQ줄에 걸쳐 ii번째 줄에 ii번째 쿼리에 대해 각각 무한히 이동 가능하다면 11, 그렇지 않으면 00을 출력한다.