건초 더미 추측
시간 제한1초메모리 제한128 MB
모든 값이 서로 다른 배열에서 구간 최솟값 질의가 주어질 때, 답들이 서로 모순되게 만드는 가장 이른 질의를 찾는다.
문제
숨겨진 건초 더미 배열이 다음과 같이 준비되어 있습니다. 더미는 모두 개이며(), 번부터 번까지 번호가 매겨져 있습니다. 각 더미에 쌓인 건초 다발의 수는 서로 모두 다르며, 그 값은 이상 이하의 정수입니다.
더미를 직접 볼 수는 없고, 대신 다음과 같은 형태의 질문을 개 () 던집니다.
번부터 번까지의 더미 중에서 (), 건초 다발이 가장 적은 더미에는 몇 다발이 쌓여 있나요?
각 질문에는 정수 하나로 답이 주어집니다. 이 답들은 항상 참이라는 보장이 없어서, 서로 모순되는 답이 섞여 있을 수 있습니다.
개의 답이 동시에 모두 참일 수 있는지, 즉 모든 답과 일치하는 더미 배열이 하나라도 존재하는지 판정하세요.
입력
- 첫째 줄: 공백으로 구분된 두 정수 과 .
- 둘째 줄부터 째 줄까지: 각 줄에 공백으로 구분된 세 정수 , , 가 주어집니다. 이는 번부터 번까지의 더미에 대한 질문과 그 답 를 나타냅니다.
출력
- 첫째 줄: 모든 답이 서로 모순되지 않으면(모든 개의 답과 일치하는 유효한 더미 배열이 존재하면) 을 출력합니다. 그렇지 않으면, 앞서 주어진 답들과 처음으로 모순을 일으키는 답의 순서를 부터 까지의 번호로 출력합니다.
힌트
예시에서 세 번째 질문(“3 12 8”)이 앞선 답들과 처음으로 충돌합니다. 처음 두 답과, 모든 더미의 건초 다발 수가 서로 다르다는 사실로부터 번부터 번 더미 중 정확히 하나가 다발을 가져야 함을 알 수 있습니다. 그러면 다발짜리 더미가 번부터 번 구간 안에 들어가는데, 이 구간의 최솟값은 이라고 답했으므로 모순이 발생합니다.