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

31004번 - Finding Array Tutorial 인터랙티브

시간 제한메모리 제한제출정답맞힌 사람정답 비율
1.5 초 1024 MB26412811750.000%

문제

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

1ドル$ 이상 1ドル,000円$ 이하의 $N$개의 정수로 이루어진 배열 $A = [A_{1}, A_{2}, \cdots, A_{N}]$가 있다. 배열의 원소 중 자신과 같은 값을 가진 원소가 다른 위치에 존재하지 않는 경우 이를 고유한 원소라고 한다.

당신은 이 배열의 원소들을 알지 못하는 상태이다. 당신은 다음과 같은 질문을 최대 2ドルN$번 할 수 있다.

  • $?$ $L$ $R$: 배열 $A$의 부분 배열 $[A_{L}, A_{L+1}, \cdots, A_{R-1}, A_{R}]$의 원소 중 고유한 원소의 개수를 질문한다.

이 질문을 이용해 배열 $A$에서 모든 고유한 원소의 위치를 찾아내야 한다.

입력

첫째 줄에 배열의 길이 $N$ 이 주어진다. $(2 \leq N \leq 1,000円)$

출력

여러분은 다음 두 가지 유형의 상호작용을 표준 출력을 통해 할 수 있다. 각 질문은 한 개의 줄로 이루어져 있으며, 각 줄의 마지막에 개행 문자를 출력한 뒤 표준 출력 버퍼를 비워야 한다.

  • $?$ $L$ $R$: 배열 $A$의 부분 배열 $[A_{L}, A_{L+1}, \cdots, A_{R-1}, A_{R}]$의 원소 중 고유한 원소의 개수를 질문한다.
    • 질문은 아래 제약 사항을 모두 만족해야 한다.
      • $L$과 $R$은 다음 조건을 만족한다. : 1ドル \leq L \leq R \leq N$
      • 이 질문은 최대 2ドルN$번 할 수 있다.
    • 이 질문 이후에, 표준 입력으로 하나의 줄에 한 개의 정수가 주어진다. 이는 배열 $A$의 부분 배열 $[A_{L}, A_{L+1}, \cdots, A_{R-1}, A_{R}]$의 원소 중 고유한 원소의 개수이다.
  • ! $K$ $i_{1}$ $i_{2}$ $\cdots$ $i_{K}$: 배열의 고유한 원소를 모두 알아낸 경우 답변한다.
    • 답변은 아래 제약 사항을 모두 만족해야 한다.
      • $K$는 고유한 원소의 개수를 의미하며, 배열 $A$에서 $A_{i_{k}}$ $(1 \leq k \leq K)$들은 모두 고유한 원소여야 한다.
      • $i_1, i_2, \cdots, i_K$는 오름차순으로 정렬되어 있어야 한다.
    • 일치한다면 맞았습니다!! 판정을 받고 불일치한다면 틀렸습니다 판정을 받는다. 추가적인 상호작용은 존재하지 않으며, 프로그램을 즉시 종료해야 한다.

다음과 같은 경우에는 예상하지 못한 채점 결과를 받을 수 있음에 유의한다.

  • 매번 질문을 한 뒤 표준 출력 버퍼를 비우지 않았다.
  • 출력 형식을 어겼다.
  • 2ドルN$번보다 많은 질문을 했다.
  • 정답을 답변한 이후 프로그램을 즉시 종료하지 않았다.

배열 $A$는 첫 질문 전에 정해져 있으며, 바뀌지 않는다.

제한

예제 입력 1

4
0
2
2
2

예제 출력 1

? 2 3
? 1 2
? 3 4
? 1 4
! 2 1 4

예제는 입출력이 어떤 방식으로 이루어지는지 알기 쉽도록 의도적으로 줄 간격을 조정한 것으로, 실제 입출력과는 다르다.

예제에서 $A$가 될 수 있는 배열 중 하나는 $[1, 2, 2, 3]$이다.

예제 입력 2

2
0

예제 출력 2

? 1 2
! 0

노트

언어별로 표준 출력 버퍼를 비우는 방법은 다음과 같다. 이외의 언어는 각 언어의 레퍼런스 페이지를 참고하여라.

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

출처

Contest > BOJ User Contest > 월간 향유회 > 월간 향유회 2023. 12. F번

채점 및 기타 정보

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

출처

대학교 대회

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

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