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

33075번 - 회장 호출하기 서브태스크점수인터랙티브

시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 1024 MB198141010.417%

문제

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

서울과학고에는 1ドル$번부터 $N$번까지 번호가 붙여진 $N$개의 교실이 있고, 각 교실에는 각각 1ドル$번부터 $K$번까지 번호가 붙여진 $K$명의 학생들이 순서대로 원형으로 둘러앉아 학급 회의를 진행하고 있다. 즉, $i$번 학생과 $i+1$번 학생이 인접하게 앉아 있으며 (1ドル \le i \le K-1$), $K$번 학생과 1ドル$번 학생도 인접하게 앉아 있다. 각 교실마다 $K$명의 학생 중 정확히 한 명의 학급 회장이 있다.

서울과학고의 교장 선생님께서 각 학급의 회장들만 불러모아 대의원 회의를 열고자 한다. 그런데 교장 선생님은 각 학급 회장의 번호를 모르기 때문에 다음과 같은 과정을 통해 모든 학생회장의 번호를 알아내기로 했다.

  • $N$개의 교실에서 각각 한 명씩, 총 $N$명을 호출한다. 이 학생들은 학생 회장이 아니어도 상관없다.
  • 호출이 끝난 뒤, 이 학생들이 교실에 앉아서 회의를 할 때 학급 회장과의 거리의 총합을 알 수 있다. 이때, 각 교실 내에서 학급 회장과 호출된 학생 사이 거리는 학급 회장의 번호가 $a,ドル 호출된 학생의 번호가 $b$일 때 $\min(|a-b|, K-|a-b|)$로 정의된다.

예컨대 교실의 수 $N = 2$ 이고, 각 교실에는 $K = 10$명의 학생들이 있다고 하자. 1ドル$번 교실의 학급 회장은 1ドル$번 학생, 2ドル$번 교실의 학급 회장은 5ドル$번 학생이라고 생각하자. 교장 선생님이 1ドル$번 교실에서 7ドル$번 학생을, 2ドル$번 교실에서 10ドル$번 학생을 호출한 경우 첫 번째 학급에서 학급 회장과 호출한 학생 사이 거리는 4ドル$이고, 두 번째 학급에서 학급 회장과 호출한 학생 사이 거리는 5ドル$이므로, 교장 선생님은 거리의 총합인 9ドル$를 되돌려받게 된다.

이제 교장 선생님을 대신해 위 호출을 이용해 각 교실의 학급 회장의 번호를 알아내는 프로그램을 작성해 보자.

인터랙션

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

먼저, 입력의 첫 번째 줄에 반의 개수 $N$과 반별 학생 명수 $K$가 공백으로 구분되어 주어진다.

이후, 아래 쿼리를 출력하면 호출된 결과인 학생들의 학급 회장 학생과의 거리 합을 얻을 수 있다. 이 쿼리는 최대 2ドル,000円$번 사용할 수 있다. 쿼리를 출력한 후 출력 버퍼를 비워야 한다.

? a[1] a[2] a[3] ... a[N]

$a[i]$는 $i$번 교실에서 호출할 학생의 번호를 의미한다. 여기서 모든 $i$에 대해 1ドル \le a[i] \le K$여야 한다. $(1 \le i \le N)$

모든 학급 회장의 번호를 알아냈다면, 아래 쿼리를 출력하여 각 교실의 학급 회장의 번호를 출력하고, 프로그램을 즉시 종료해야 한다.

! b[1] b[2] b[3] ... b[N]

$b[i]$는 $i$번 교실의 학급 회장 번호를 의미한다. 여기서 모든 $i$에 대해 1ドル \le b[i] \le K$여야 한다. $(1 \le i \le N)$

인터랙터는 적응적이지 않다. 즉, 학급 회장의 번호는 실행 중간에 변화하지 않는다.

입력

출력

제한

  • 2ドル \le N \le 500$
  • 2ドル \le K \le 10^5$

서브태스크 1 (30점)

  • 2ドル \le N \le 10,ドル 2ドル \le K \le 100$

서브태스크 2 (70점)

  • 10ドル < N \le 500,ドル 100ドル < K \le 100,000円$

서브태스크 2에서는 사용한 쿼리의 수 $Q$에 따라 부분 점수를 얻을 수 있다. $Q$에 따라 얻을 수 있는 서브태스크 2의 점수는 다음과 같다.

  • 4ドルN + 10 < Q$: 0점
  • 2ドルN + 1 < Q \le 4N + 10$: 21점
  • 2ドルN < Q \le 2N+1$: 35점
  • $\frac{3}{2} N + 2 < Q \le 2N$: 49점
  • $\frac{3}{2} N + 1 < Q \le \frac{3}{2}N + 2$: 56점
  • $Q \le \frac{3}{2} N + 1$: 70점

예제 입력 1

2 10
9
0
​

예제 출력 1

? 7 10
? 1 5
! 1 5

예제는 이해를 돕기 위해 개행 간격을 의도적으로 조절한 것으로, 실제 입출력에서는 빈 줄을 입력받거나 출력하지 않아야 한다.

노트

출력 버퍼를 비우는 방법은 다음과 같다.

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

이외의 언어에 대해서는 언어별 명세를 참고해야 한다.

출처

School > 서울과학고등학교 > SciOI 2024 F번

채점 및 기타 정보

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

출처

대학교 대회

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

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