Logo
(追記) (追記ここまで)

30506번 - 가위 가위 가위 인터랙티브

시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 1024 MB101321018222.778%

문제

세종이는 가위바위보 머신을 개발했다. 머신을 작동시키면 머신 가위바위보 대결을 즐길 수 있다. 한 번의 대결은 총 100ドル$번의 가위바위보 게임으로 이루어지며, 각 게임의 결과는 플레이어에게 공개되지 않는다. 대신 100ドル$번의 가위바위보 게임을 모두 진행한 후 플레이어는 100ドル$번의 게임 중 이긴 게임의 수를 알 수 있다.

가위바위보의 꽃은 무작위성이지만, 난수 생성 알고리즘을 믿지 못하는 세종이는 아예 머신이 낼 손 모양의 순서를 모두 고정해 버렸다. 이를 본 영재는 세종이와 다음과 같은 내기를 하기로 했다.

  • 영재와 머신이 대결한다. 처음에 영재는 반드시 100ドル$개의 가위를 낸다.
  • 매 대결이 끝날 때마다, 영재는 자신이 이긴 게임의 수를 확인한다. 그 뒤 영재는 낼 손 모양을 원하는 대로 바꾸고 다음 게임을 진행한다.
  • 영재는 첫 대결을 포함해 총 101ドル$번의 대결을 할 수 있다.
  • 대결 결과를 통해 영재가 머신의 손 모양이 무엇인지 맞히면 영재가, 맞히지 못하면 세종이가 내기에서 이긴다.

영재가 내기에서 이길 수 있게 도와주자!

입력

첫째 줄에 영재가 머신과의 첫 대결에서 이긴 게임의 수를 나타내는 정수 $K$가 주어진다. $(0 \leq K \leq 100)$

출력

다음을 표준 출력 스트림(stdout)으로 한 줄에 출력해 머신과의 대결을 진행할 수 있다.

  • ? hand: 영재의 손 모양을 hand로 바꾸고 다음 대결을 진행한다. hand0, 2, 5로만 이루어진 100ドル$자 길이의 문자열이어야 한다. hand의 $i$번째 글자는 영재가 다음 대결의 $i$번째 게임에서 낼 손 모양을 의미하며, 0은 바위, 2는 가위, 5는 보를 의미한다.

출력한 후에는 반드시 표준 출력 버퍼를 비워야 한다. 출력 버퍼를 비우지 않는 경우 예상 밖의 결과를 얻을 수 있음에 유의하라.

대결의 결과는 영재가 이긴 게임의 수를 의미하는 하나의 정수로 주어진다. 만약 머신의 손 모양을 알아낸 경우, ! machine_hand를 출력하고 프로그램을 종료할 수 있다. machine_hand는 머신의 손 모양을 뜻하는 문자열로, 0, 2, 5로만 이루어진 100ドル$자 길이의 문자열이어야 한다. machine_hand의 $i$번째 글자는 머신이 한 대결의 $i$번째 게임에서 내는 손 모양을 의미하며, 0은 바위, 2는 가위, 5는 보를 의미한다.

채점 프로그램은 machine_hand와 실제 머신이 내는 손 모양이 모두 일치할 때 이를 정답으로 처리한다. 만약 머신과의 대결 횟수가 101ドル$번을 초과하거나, 출력 형식을 지키지 않거나, machine_hand와 실제 머신이 내는 손 모양이 다른 경우 이를 오답으로 처리한다.

그레이더는 비적응적(non-adaptive)으로, 처음에 정한 손 모양을 상황에 따라 바꾸지 않는다.

제한

예제 입력 1

3
4
3
5
ᅠ

예제 출력 1

? 22022
? 25022
? 22052
! 55205

예제는 한 대결이 5번의 게임으로 이루어진 경우를 가정하며, 실제 문제와는 다름에 유의하라. 또한 예제는 입출력 작동 방식의 이해를 돕기 위해 의도적으로 줄 간격을 조정했으며, 실제 입출력과는 다름에 유의하라.

노트

언어별로 표준 출력 버퍼를 비우는 방법은 다음과 같다.

  • C: fflush(stdout)
  • C++: std::cout << std::flush
  • Java: System.out.flush()
  • Python: sys.stdout.flush()

출처

School > 세종과학예술영재학교 > SASA Programming Contest 2023 F번

채점 및 기타 정보

  • 예제는 채점하지 않는다.
(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /