문제 110
값 차이 관계 관리하기
$N$개의 정수 변수 $A_0,A_1,\cdots,A_{N-1}$이 있다. 처음에는 변수 사이의 관계가 알려져 있지 않다. 다음 $Q$개의 연산을 순서대로 처리해 보자.
- $0\ u\ v\ w$: $A_v-A_u=w$라는 관계를 추가한다. 기존 관계와 모순이면 새 관계만 거절한다.
- $1\ u\ v$: 받아들인 관계로 $A_v-A_u$를 결정할 수 있다면 그 값을 구한다.
- $2\ u\ v$: 받아들인 관계로 $A_v-A_u$를 결정할 수 있는지 판별한다.
- $3\ u$: 받아들인 관계로 $A_v-A_u$를 결정할 수 있는 변수 $A_v$의 개수를 구한다.
변수 자체의 값에는 제한이 없다. $3$번 연산에서는 $A_u$도 센다. $u=v$인 관계나 중복된 관계도 주어질 수 있다.
입력
첫 번째 줄에 두 정수 $N$, $Q$가 공백으로 구분되어 주어진다. $(1 \le N, Q \le 200\,000)$
두 번째 줄부터 $Q$개의 줄에 걸쳐 본문에서 설명한 형식의 연산이 주어진다. 각 연산의 정수는 공백으로 구분되어 주어진다. $(0 \le u, v < N; -10^9 \le w \le 10^9)$
출력
각 연산의 답을 연산이 주어진 순서대로 한 줄에 하나씩 출력한다.
- $0$번 연산: 관계를 받아들였다면 $1$을, 거절했다면 $0$을 출력한다.
- $1$번 연산: $A_v-A_u$를 결정할 수 있다면 그 값을, 그렇지 않다면
UNKNOWN을 출력한다. - $2$번 연산: $A_v-A_u$를 결정할 수 있다면 $1$을, 그렇지 않다면 $0$을 출력한다.
- $3$번 연산: 구한 변수의 개수를 출력한다.
예제 입력 1
5 13 1 0 4 0 0 1 3 0 1 2 -5 1 0 2 0 0 2 -1 1 0 2 2 0 3 3 1 0 3 4 0 0 2 3 7 1 4 0 2 0 4 3 4
예제 출력 1
UNKNOWN 1 1 -2 0 -2 0 3 1 1 -5 1 5