이 문제는 인터랙티브 문제이다.
명의 사람에게 부터 까지 번호가 붙어 있다. 번 사람은 인 번 사람에게 빼빼로를 줄 수 있다. 항상 이다.
매 턴 아직 주지 않은 사람 를 선택한다. 인터랙터는 그 사람이 줄 수 있는 사람 중 아직 받지 않은 한 명 를 선택한다. 조건을 만족하는 사람이 없으면 실패한다. 자기 자신에게 주는 것도 가능하다.
모든 사람이 정확히 한 번씩 주고 정확히 한 번씩 받도록 하여라. 인터랙터는 이전 결과에 따라 수령자를 선택할 수 있으며, 어떤 유효한 선택에도 성공해야 한다. 항상 성공하는 전략이 존재한다.
처음에 인터랙터는 다음 형식의 정보를 보낸다.
정확히 번의 턴을 진행한다. 매 턴 아직 선택하지 않은 사람 에 대해 다음을 한 줄에 출력하고 버퍼를 flush한다.
?
인터랙터는 를 만족하며 이전에 받지 않은 수령자 를 한 줄로 보낸다. 가능한 수령자가 없다면 을 보내며, 이 경우 즉시 프로그램을 종료해야 한다.
-1번 모두 성공했다면 다음을 출력하고 flush한 뒤 종료한다.
!
중복 선택, 범위 밖 번호, 잘못된 출력 형식, 너무 이른 종료 또는 번을 넘는 질의는 오답이다. 응답을 기다리기 전에 flush하지 않으면 시간 초과가 될 수 있다.
대화 예시
인터랙터가 먼저 다음 두 줄을 보낸다.
1 1 1
참가자 프로그램이 ? 1을 출력하고 버퍼를 비우면, 인터랙터가 1을 보낸다. 참가자 프로그램은 !를 출력하고 버퍼를 비운 뒤 종료한다.