스파이 2
- 시간 제한
- 2s
- 메모리 제한
- 1024MB
- 제출
- 0
- 정답
- 0
- 맞힌 사람
- 0
- 정답 비율
- 0.0%
문제
JOI 국에는 명의 의원이 있으며, 부터 까지의 번호가 붙어 있다. JOI 국의 대신인 당신은 의원 중에 있는 스파이를 찾아내려고 한다. 당신은 각 의원 () 에 대하여 다음과 같은 정보를 얻었다.
- 일 때, 의원 는 스파이이다.
- 일 때, 의원 는 스파이가 아니다.
- 일 때, 의원 가 스파이인지 아닌지는 알 수 없다.
또한 탐문 조사를 수행한 결과, 새로 개의 정보를 얻을 수 있었다. 번째 탐문 조사의 정보 () 는, 의원 () 가 "의원 () 는 스파이이고, 또한 의원 () 는 스파이가 아니다"라고 증언했다는 것이다.
단, 의원 가 스파이라면 번째 탐문 조사의 정보에서의 증언은 사실과 다르다. 즉, 만약 의원 가 스파이라면 "의원 는 스파이이다", "의원 는 스파이가 아니다" 중 적어도 한쪽은 사실이 아니다. 한편, 의원 가 스파이가 아닐 때 번째 탐문 조사의 정보에서의 증언은 사실일 수도 있고 그렇지 않을 수도 있다.
각 의원의 정보와 탐문 조사의 결과가 주어지므로, 그 개의 정보가 모순되는지를 판정하고, 모순되지 않는다면 각각의 의원이 스파이인지 아닌지를 구하는 프로그램을 작성하시오. 개의 정보와 일치하는 답이 여러 개 존재하는 경우에는 그중 어느 것을 출력해도 된다.
제한
- .
- .
- ().
- ().
- ().
- ().
- ().
- ().
- ().
서브태스크
- ( 점) , .
- ( 점) , .
- ( 점) 추가 제약이 없다.
입력
입력은 다음 형식으로 표준 입력에서 주어진다.
출력
표준 출력에 출력한다.
주어진 정보가 모순되는 경우, -1 을 줄로 출력한다.
그렇지 않은 경우, 출력은 줄로 이루어진다. 번째 줄 () 에는 의원 가 스파이인 경우 을, 의원 가 스파이가 아닌 경우 를 출력한다. 개의 정보와 일치하는 답이 여러 개 존재하는 경우, 그중 어느 것을 출력해도 된다.
예제 입력 1
4 1
1 3 2 3
1 2 3
예제 출력 1
1
2
2
1
예제 출력 에서 의원 은 스파이이며, "의원 는 스파이이고, 또한 의원 은 스파이가 아니다"라는 증언은 의원 가 스파이가 아니므로 사실과 다르다. 따라서 예제 출력 은 주어진 정보와 일치하며, 정답이 된다.
이 외에도 의원 만이 스파이이고 다른 의원은 스파이가 아니라는 답도 정답이 된다.
예제 입력 2
4 2
2 1 3 1
4 3 1
2 4 3
예제 출력 2
-1
의원 이 스파이라고 하면 번째 탐문 조사의 정보와 일치하지 않는다. 의원 이 스파이가 아니라고 하면 번째 탐문 조사의 정보와 일치하지 않는다. 정보가 모순되므로 -1 을 출력한다.
예제 입력 3
3 2
1 2 2
2 1 3
2 3 1
예제 출력 3
1
2
2
예제 입력 에서는 모든 의원에 대하여 스파이인지 아닌지의 정보가 주어져 있다. 이들은 탐문 조사의 정보와도 일치하므로, 예제 출력 이 유일한 정답이 된다. 스파이가 아닌 의원의 증언은 사실일 수도 있고 그렇지 않을 수도 있음에 주의하시오.
코드를 제출하려면 로그인이 필요합니다.
로그인제출 내역이 없습니다.
아직 맞은 사람이 없습니다.
제출 내역이 없습니다.