문제
이 문제는 인터렉티브 문제다. 인터렉티브 문제란 문제에 대한 답을 단순히 출력하는 것이 아니라, 채점기와 상호작용하여 정답을 알아내는 문제다.
채점기는 1부터 1,000,000,000 사이의 무작위 정수를 하나 들고 있다. 이 수를 맞추는 프로그램을 작성해보자.
인터렉티브
당신의 프로그램은 최대 40번의 질문을 할 수 있다. 질문은 아래의 형식으로 하나에 출력한다.
? x: 채점기가 갖고 있는 수가x인지 물어본다.
당신의 프로그램이 질문을 한 뒤에, 채점기는 자신이 갖고 있는 수가 x랑 같으면 =를 출력해주고, x보다 크면 +, x보다 작으면 -를 출력해준다.
여러분은 C의 scanf나 C++의 std::cin, Python의 input 등의 표준 입력 방법을 통해 채점기의 출력을 입력으로써 받아올 수 있다.
질문을 한 뒤에는 반드시 출력 버퍼를 비워줘야 한다. 그렇지 않으면 예상치 못한 결과를 얻을 수 있다.
아래 방법으로 출력 버퍼를 비울 수 있다.
- C:
fflush(stdout) - C++:
std::cout << std::flush - Python:
sys.stdout.flush()
수가 무엇인지 알았다면 아래의 형식으로 답을 출력한다.
! x: 채점기가 갖고 있는 수는x이다.
답을 출력한 후에는 반드시 프로그램을 종료해야 하며, 그 외의 경우에는 TLE 에러를 받을 수 있으니 주의하자!
또한 코드 내부에서 exit() 등의 함수를 사용하면 비정상적으로 종료되어 오답이 날 수도 있다.
= </pre> </div> <div style="width: 50%;"> <h4>예제 출력 1</h4> <pre>? 1
? 4
? 3
! 3</pre> </div>
</div>입출력이 어떤 방식으로 이루어지는지 이해를 돕기 위해, 의도적으로 줄 간격을 조절한 것이다. 실제 입출력과 다른 것에 유의하자.
<div style="display: flex;"> <div style="width: 50%; margin-right: 20px;"> <h4>예제 입력 2</h4> <pre><br>+-
</div> <div style="width: 50%;"> <h4>예제 출력 2</h4> <pre>? 1
</pre>
? 3
! 2</pre> </div>
</div>| 순위 | 사용자 | 언어 | 시간 | 메모리 | 코드 길이 |
|---|---|---|---|---|---|
| 🥇 | 202102622_김우솔 | C++ | 32ms | 3328KB | 450B |
| 🥈 | 202102659_안우진 | Python | 238ms | 10112KB | 257B |
| # | 사용자 | 결과 | 언어 | 시간 | 메모리 | 코드 길이 | 제출 시간 |
|---|---|---|---|---|---|---|---|
| 4054 | 202102622_김우솔 | 정답 | C++ | 32ms | 3328KB | 450B | 2025. 03. 17. 05:24 |
| 4053 | 202102622_김우솔 | 시간 초과 | C++ | 1029ms | 3328KB | 442B | 2025. 03. 17. 05:24 |
| 4052 | 202102622_김우솔 | 시간 초과 | C++ | 10003ms | 3072KB | 434B | 2025. 03. 17. 05:22 |
| 4051 | 202102622_김우솔 | 시간 초과 | C++ | 10000ms | 3072KB | 442B | 2025. 03. 17. 05:15 |
| 4049 | 202102659_안우진 | 런타임 에러 | Python | 248ms | 10112KB | 258B | 2025. 03. 17. 04:18 |
| 4048 | 202102659_안우진 | 정답 | Python | 238ms | 10112KB | 257B | 2025. 03. 17. 04:17 |
| 4047 | 202102659_안우진 | 런타임 에러 | Python | 234ms | 10112KB | 242B | 2025. 03. 17. 04:16 |
| 4046 | 202102659_안우진 | 런타임 에러 | Python | 246ms | 10112KB | 282B | 2025. 03. 17. 04:12 |
| 4045 | 202102659_안우진 | 런타임 에러 | Python | 231ms | 10084KB | 278B | 2025. 03. 17. 04:11 |