#1445
Platinum III

스파이 2

서브테스크
원문: 日本語
시간 제한
2s
메모리 제한
1024MB
제출
0
정답
0
맞힌 사람
0
정답 비율
0.0%

문제

JOI 국에는 NN 명의 의원이 있으며, 11 부터 NN 까지의 번호가 붙어 있다. JOI 국의 대신인 당신은 의원 중에 있는 스파이를 찾아내려고 한다. 당신은 각 의원 ii (1≤i≤N1 \le i \le N) 에 대하여 다음과 같은 정보를 얻었다.

  • Ti=1T_{i} = 1 일 때, 의원 ii 는 스파이이다.
  • Ti=2T_{i} = 2 일 때, 의원 ii 는 스파이가 아니다.
  • Ti=3T_{i} = 3 일 때, 의원 ii 가 스파이인지 아닌지는 알 수 없다.

또한 탐문 조사를 수행한 결과, 새로 MM 개의 정보를 얻을 수 있었다. jj 번째 탐문 조사의 정보 (1≤j≤M1 \le j \le M) 는, 의원 AjA_{j} (1≤Aj≤N1 \le A_{j} \le N) 가 "의원 BjB_{j} (1≤Bj≤N1 \le B_{j} \le N) 는 스파이이고, 또한 의원 CjC_{j} (1≤Cj≤N1 \le C_{j} \le N) 는 스파이가 아니다"라고 증언했다는 것이다.

단, 의원 AjA_{j} 가 스파이라면 jj 번째 탐문 조사의 정보에서의 증언은 사실과 다르다. 즉, 만약 의원 AjA_{j} 가 스파이라면 "의원 BjB_{j} 는 스파이이다", "의원 CjC_{j} 는 스파이가 아니다" 중 적어도 한쪽은 사실이 아니다. 한편, 의원 AjA_{j} 가 스파이가 아닐 때 jj 번째 탐문 조사의 정보에서의 증언은 사실일 수도 있고 그렇지 않을 수도 있다.

각 의원의 정보와 탐문 조사의 결과가 주어지므로, 그 N+MN + M 개의 정보가 모순되는지를 판정하고, 모순되지 않는다면 각각의 의원이 스파이인지 아닌지를 구하는 프로그램을 작성하시오. N+MN + M 개의 정보와 일치하는 답이 여러 개 존재하는 경우에는 그중 어느 것을 출력해도 된다.

제한

  • 1≤N≤300 0001 \le N \le 300\,000.
  • 1≤M≤300 0001 \le M \le 300\,000.
  • 1≤Ti≤31 \le T_{i} \le 3 (1≤i≤N1 \le i \le N).
  • 1≤Aj≤N1 \le A_{j} \le N (1≤j≤M1 \le j \le M).
  • 1≤Bj≤N1 \le B_{j} \le N (1≤j≤M1 \le j \le M).
  • 1≤Cj≤N1 \le C_{j} \le N (1≤j≤M1 \le j \le M).
  • Aj≠BjA_{j} \neq B_{j} (1≤j≤M1 \le j \le M).
  • Aj≠CjA_{j} \neq C_{j} (1≤j≤M1 \le j \le M).
  • Bj≠CjB_{j} \neq C_{j} (1≤j≤M1 \le j \le M).

서브태스크

  1. (77 점) N≤16N \le 16, M≤100M \le 100.
  2. (3838 점) N≤3 000N \le 3\,000, M≤3 000M \le 3\,000.
  3. (5555 점) 추가 제약이 없다.

입력

입력은 다음 형식으로 표준 입력에서 주어진다.
NN MM
T1T_{1} T2T_{2} …\dots TNT_{N}
A1A_{1} B1B_{1} C1C_{1}
A2A_{2} B2B_{2} C2C_{2}
::
AMA_{M} BMB_{M} CMC_{M}

출력

표준 출력에 출력한다.

주어진 정보가 모순되는 경우, -1 을 11 줄로 출력한다.

그렇지 않은 경우, 출력은 NN 줄로 이루어진다. ii 번째 줄 (1≤i≤N1 \le i \le N) 에는 의원 ii 가 스파이인 경우 11 을, 의원 ii 가 스파이가 아닌 경우 22 를 출력한다. N+MN + M 개의 정보와 일치하는 답이 여러 개 존재하는 경우, 그중 어느 것을 출력해도 된다.

예제 입력 1

4 1
1 3 2 3
1 2 3

예제 출력 1

1
2
2
1

예제 출력 11 에서 의원 11 은 스파이이며, "의원 22 는 스파이이고, 또한 의원 33 은 스파이가 아니다"라는 증언은 의원 22 가 스파이가 아니므로 사실과 다르다. 따라서 예제 출력 11 은 주어진 정보와 일치하며, 정답이 된다.

이 외에도 의원 11 만이 스파이이고 다른 의원은 스파이가 아니라는 답도 정답이 된다.

예제 입력 2

4 2
2 1 3 1
4 3 1
2 4 3

예제 출력 2

-1

의원 33 이 스파이라고 하면 11 번째 탐문 조사의 정보와 일치하지 않는다. 의원 33 이 스파이가 아니라고 하면 22 번째 탐문 조사의 정보와 일치하지 않는다. 정보가 모순되므로 -1 을 출력한다.

예제 입력 3

3 2
1 2 2
2 1 3
2 3 1

예제 출력 3

1
2
2

예제 입력 33 에서는 모든 의원에 대하여 스파이인지 아닌지의 정보가 주어져 있다. 이들은 탐문 조사의 정보와도 일치하므로, 예제 출력 33 이 유일한 정답이 된다. 스파이가 아닌 의원의 증언은 사실일 수도 있고 그렇지 않을 수도 있음에 주의하시오.

코드 제출

코드를 제출하려면 로그인이 필요합니다.

로그인
내 제출

제출 내역이 없습니다.

맞은 사람

아직 맞은 사람이 없습니다.

난이도 투표
Platinum III1명 투표· 약 2개월 전
로그인 후 AC 받으면 투표할 수 있습니다.
전체 제출

제출 내역이 없습니다.