Universal Cup Judging System

Universal Cup

Time Limit: 6 s Memory Limit: 1024 MB Total points: 100 Difficulty: [show]
Statistics

Plang Province에서는 HSFZPC 2026에 300명의 학생이 참가했습니다. 그중 일부는 금메달을 획득했고, 나머지는 획득하지 못했습니다.

Plang Province 학생들은 이상한 습관이 있습니다. 금메달을 획득하지 못했다면 솔직하게 획득하지 못했다고 말합니다. 하지만 금메달을 획득했다면, 확률 $p$로 금메달을 획득했다고 말하고, 확률 $1-p$로 획득하지 못했다고 말합니다. 각 응답은 무작위이며 이전 응답과 관련이 없습니다.

Plang Province의 코치인 당신은 각 학생이 금메달을 획득했는지 알고 싶습니다. 그런 다음 Una에게 다음과 같은 작업을 수행하도록 할 수 있습니다.

  • 서로 다른 학생 몇 명을 선택하고 Una에게 각 학생에게 금메달을 획득했는지 물어보도록 합니다. Una는 "Yes"라고 대답한 사람의 수를 알려줄 것입니다.

Plang OI 2025의 금메달 커트라인은 571점이었으므로, 평균적으로 568번의 쿼리 안에 답을 찾아야 합니다.

Plang OI의 제한 사항으로 인해 금메달을 획득한 학생이 정확히 48명이라고 가정할 수 있습니다.

그림 1: 코치가 학생에게 숨겨진 점수가 몇 점인지 묻고 있습니다.

인터랙션

이 문제는 인터랙티브 문제입니다. 각 출력 후에는 반드시 출력 버퍼를 비워야 합니다. 출력 버퍼를 비우려면 다음을 사용할 수 있습니다.

  • C/C++: fflush(stdout) 또는 cout.flush()
  • Java 및 Kotlin: System.out.flush()
  • Python: sys.stdout.flush()

먼저, 테스트 케이스의 수 $T$ ( $T=20$ )를 읽습니다.

각 테스트 케이스마다 학생의 수 $n$ ( $n=300$ )을 읽습니다.

쿼리를 하려면 "? $k$ $P_1$ $P_2$ ... $P_k$" 형식의 한 줄을 출력합니다 ( $1 \le P_i \le n$, $P_i \ne P_j$ for $1 < i < j \le k$ ).

그런 다음 Una가 찾은 답변을 나타내는 정수를 읽습니다. 쿼리가 유효하지 않거나 총 쿼리 수가 $568T$개를 초과하면 심사 프로그램은 -1을 출력합니다. -1을 읽은 후에는 정의되지 않은 동작을 피하기 위해 즉시 종료해야 합니다.

답을 얻으면, "$!$ $s_1$ $s_2$ ... $s_n$" 형식의 한 줄을 출력합니다. 여기서 $s_i=1$은 $i$번째 학생이 금메달을 획득했음을 나타내고, $s_i=0$은 그렇지 않음을 나타냅니다.

그런 다음, 답변이 올바른지 여부를 나타내는 단어 OK 또는 WA를 읽습니다. 프로그램이 WA를 읽으면 정의되지 않은 동작을 피하기 위해 즉시 종료해야 합니다.

심사 프로그램은 적응형이 아니므로, 쿼리 후에도 답변은 변경되지 않습니다. 테스트는 최대 10개입니다.

예제

입력 1

1

출력 1

? 2 1 2

입력 2

2

출력 2

? 1 1

입력 3

0

출력 3

? 1 2

입력 4

0

출력 4

! 0 1

입력 5

1

출력 5

OK

참고

이 예제는 참조용이며 $T=20$ 및 $n=300$을 만족하지 않으며 실제 테스트에는 나타나지 않습니다.

참가자가 솔루션을 개발하고 테스트하는 데 도움이 되는 테스트 도구가 제공됩니다. 이 도구는 첨부 파일에서 다운로드할 수 있습니다. "-h" 옵션으로 도구를 실행하면 사용 방법을 설명합니다. 테스트 도구는 실제 심사 프로그램의 일부 테스트 시나리오와 일부 기능만 구현합니다.

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.