SOJ ONLINE JUDGE

문제 143

친구와 적의 관계

내 상태
미제출
난이도
143번 문제 난이도 보기
Gold III
출제자
rlatjwls7882
시간 제한
3000 ms
메모리 제한
1024 MB
143번 문제 태그 보기
구현

사람 $N$명을 두 색 $0$과 $1$ 중 하나로 칠하려고 한다. 사람의 번호는 $0$부터 $N-1$까지이다. 같은 색인 두 사람은 친구, 다른 색인 두 사람은 적이라고 하자.

다음 $Q$개의 연산을 순서대로 처리해 보자. 연산에서 $u$와 $v$는 사람의 번호, $w$는 두 사람의 색을 XOR한 값을 나타내는 정수이다.

  • $\texttt{F}\ u\ v$: $u$와 $v$가 친구라는 관계를 추가한다.
  • $\texttt{E}\ u\ v$: $u$와 $v$가 적이라는 관계를 추가한다.
  • $\texttt{M}\ u\ v\ w$: 두 사람의 색을 XOR한 값이 $w$라는 관계를 추가한다.
  • $\texttt{R}\ u\ v$: 두 사람의 색이 같은지, 다른지 판별한다.

새 관계가 기존에 받아들인 관계와 모순된다면 그 관계만 거절한다. 알려진 관계만으로 색의 같고 다름을 결정하지 못할 수도 있다.

입력

첫 번째 줄에 정수 $N$, $Q$가 공백으로 구분되어 주어진다. $(1\le N,Q\le200\,000)$

두 번째 줄부터 $Q$개의 줄에 걸쳐 본문에서 설명한 형식의 연산이 주어진다. 각 연산의 값은 공백으로 구분되어 주어진다. $(0\le u,v<N; w\in\{0,1\})$

출력

F, E, M 연산은 관계를 받아들였으면 $1$을, 거절했으면 $0$을 출력한다. R 연산은 두 사람의 색이 같으면 $0$을, 다르면 $1$을, 지금까지의 관계로 알 수 없으면 $-1$을 출력한다.

각 연산의 결과를 한 줄에 출력한다.

예제 입력 1

4 9
R 0 1
F 0 1
E 1 2
R 0 2
M 0 2 0
R 0 2
E 3 3
F 2 2
R 3 3

예제 출력 1

-1
1
1
1
0
1
0
1
0

제출

편집기에서 나가려면 Esc를 누른 뒤 Tab 또는 Shift와 Tab을 누르세요.