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

34999번 - 이진 수열 숫자 야구 게임 인터랙티브

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

문제

이 문제는 인터랙티브 문제이다.

숫자 야구 게임은 답변자가 가지고 있는 수열을 질문자가 추측해서 알아맞히는 게임이다. 질문자는 답변자가 가지고 있을 것으로 생각하는 수열을 제시하고, 답변자는 질문자가 제시한 수열과 얼마나 일치하는지 알려준다. 답변자는 자신이 가진 수열과 질문자가 제시한 수열의 항 중 일치하는 항의 수(스트라이크)와 이를 제외한 항 중 두 수열에 동시에 등장하는 수의 개수(볼)을 알려준다.

와칠은 동네 뒷산에서 길이 $N$의 이진 수열 $S$를 주워 왔다. 이진 수열은 01만으로 이루어진 문자열이다.

당신과 와칠은 이 이진 수열로 숫자 야구를 하기로 했다. 와칠이 답변자이고 당신이 질문자이다.

사악한 와칠은 스트라이크와 볼을 모두 알려주면 이진 수열을 알아내기 너무 쉬워진다고 생각해 스트라이크만 알려주기로 했다. 최대 3ドル,000円$번 질문해 와칠이 주워 온 이진 수열을 알아맞혀 보자.

이 문제의 인터랙터는 적응적이지 않다. 즉, 당신이 어떤 질문을 하든 와칠이 주워 온 이진 수열은 바뀌지 않는다.

입력

첫째 줄에 이진 수열 $S$의 길이 $N$ $(1 \le N \le 4,000円)$이 주어진다.

출력

당신의 프로그램은 아래의 과정을 통해 인터랙터와 상호작용해야 한다.

당신은 인터랙터에게 다음과 같은 쿼리를 최대 3ドル,000円$회 요청할 수 있다.

  • ? $T$ $(|T| = N;$ $T$는 이진 수열$)$: 와칠에게 수열 $T$를 제시한다.
    • 쿼리의 결과로 $S$와 $T$의 일치하는 항의 개수인 스트라이크가 표준 입력으로 주어진다.

쿼리의 끝에는 개행 문자를 출력해야 하며 쿼리를 출력한 뒤에는 반드시 출력 버퍼를 비워야 한다.

이진 수열 $S$를 알아냈다면 정답을 다음과 같이 출력하고 표준 출력 버퍼를 비우고 프로그램을 즉시 종료해야 한다. 표준 출력 버퍼를 비우지 않거나 즉시 종료하지 않는 경우 예상치 못한 결과를 얻을 수 있다.

  • ! $R$ $(|R| = N;$ $R$은 이진 수열$)$: 와칠이 주워 온 수열은 $R$이다.

$R$이 와칠이 고른 수열 $S$와 일치한다면 맞았습니다!!를 받는다.

제한

예제 입력 1

4
2
2
1
0

예제 출력 1

​
? 0000
? 1111
? 1110
? 1100
! 0011

위 예시는 입출력이 어떤 방식으로 이루어지는지 이해를 돕기 위해 의도적으로 개행 간격 등을 조절한 것으로, 실제 입출력과는 다르다.

노트

출처

Contest > BOJ User Contest > 카툰컵 > Cartoon Cup: ONE I번

채점 및 기타 정보

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

출처

대학교 대회

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

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