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

32169번 - 허술한 보안 프로그램 인터랙티브

시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 (추가 시간 없음) 1024 MB (추가 메모리 없음)158524747.000%

문제

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

한 방랑 상인이 신촌 지역 대학교 프로그래밍 동아리 연합 ICPC Sinchon에 찾아왔다.

"특별한 보안 프로그램 bitwise OR wizard를 소개하지. 여기 사용 가이드를 읽어 보시게.

  • 비밀번호로 0ドル$부터 $N-1$까지 서로 다른 $N$개의 정수로 이루어진 $N$자리의 순열을 이용한다.
  • 틀린 비밀번호를 입력했을 경우 원래 비밀번호와 입력한 비밀번호의 bitwise OR 연산 결과를 보여준다.
  • 최대 2ドル$번까지만 틀릴 수 있다. 더 많이 틀릴 경우 프로그램은 모든 데이터를 삭제하고 고장난다.

2ドル$번까지 틀릴 수 있지만 특수한 기능을 통해 비밀번호를 잊었을 때를 대비할 수 있고 비밀번호를 모르는 사람은 절대 암호를 풀 수 없지. 어떤가? 부가세 포함 단돈 3ドル,300円$원에 판매하겠네."

2ドル,700円$원으로 연세우유 생크림빵을 먹고 싶었던 ICPC Sinchon 회장은 잠깐 고민에 빠졌지만 결국 구매를 결정하기로 하였다. 이때, ICPC Sinchon의 알고리즘 고수가 나타나 이를 저지하고 나섰다.

"비밀번호를 모르는 사람도 뚫어낼 수 있는 허술한 프로그램을 판매하려 하다니, 절대 용서할 수 없어."

어떻게 한다는 것일까?

입력

첫째 줄에 순열의 길이를 나타내는 양의 정수 $N$이 주어진다. (1ドル \leq N \leq 2 ,円 024$)

출력

제한

인터랙션 프로토콜

인터랙터에게 보낼 수 있는 쿼리는 다음과 같다.

  • $?$ $p_{1}$ $p_{2}$ $\cdots$ $p_{N}$ : 숨겨진 순열과 bitwise OR 연산한 결과를 알고 싶은 순열을 입력한다.

숨겨진 순열 $\{h_{n}\}$에 대해 쿼리의 결과는 한 줄에 공백으로 구분되어 주어지는 $N$개의 정수 $h_{1}|p_{1},ドル $h_{2}|p_{2},ドル $\cdots,ドル $h_{N}|p_{N}$을 입력받아 확인할 수 있다.

숨겨진 순열을 알아냈다면 다음과 같이 출력하고 프로그램을 종료해야 한다. 정답을 출력하는 것은 쿼리에 포함되지 않는다.

  • $!$ $p_{1}$ $p_{2}$ $\cdots$ $p_{N}$ : 순열 $\{p_{n}\}$이 숨겨진 순열과 일치하면 맞았습니다!!를 받는다. 그렇지 않으면 틀렸습니다를 받는다.

모든 출력 이후에는 반드시 표준 출력 버퍼를 flush해야 한다. 언어별로 표준 출력 버퍼를 flush하는 방법은 다음과 같다.

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

기타 언어의 경우 각 언어의 documentation을 참조하자.

출력 형식을 지키지 않거나 쿼리를 2ドル$번보다 많이 보낸 경우에는 예상치 못한 채점 결과를 받을 수 있음에 유의하자.

예제 입력 1

1

예제 출력 1

! 0

예제 입력 2

4
0 3 1 3

예제 출력 2

? 0 2 1 3
! 0 3 1 2

노트

순열의 범위가 $[1, N]$이 아닌 $[0, N-1]$임에 유의하자.

출처

University > 신촌지역 대학생 프로그래밍 대회 동아리 연합 > 2024 신촌지역 대학생 프로그래밍 동아리 연합 여름 대회 (SUAPC 2024 Summer) L번

채점 및 기타 정보

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

출처

대학교 대회

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

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