어려운 정수 맞히기 게임

시간 제한3초메모리 제한1024 MB

요약
x-a가 음수가 되지 않도록 조심하면서 sqrt(x-a)-b의 부호를 묻는 질문 75개 이하로 0 이상 10^18 이하의 정수 x를 맞힌다.
난이도

보통10점 중 7점

유형
이분 탐색, 수학, 구간, 구현
정답자
아직 제출이 없습니다

문제

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

흐즈로는 음이 아닌 정수 xx (0≤x≤10180 \le x \le 10^{18})를 하나 가지고 정수 맞히기 게임을 하고자 합니다. 여러분은 질문을 하여 숨겨진 정수 xx를 맞혀야 합니다. 하지만, 흐즈로는 지금까지 이러한 종류의 문제만 몇백 개 정도 있었다는 사실을 알고 있습니다. 그렇기에 흐즈로는 여러분이 문제를 쉽게는 풀 수 없도록 그 누구도 생각하지 못했을 종류의 질문을 생각해 냈습니다. 여러분이 사용할 수 있는 질문은 다음과 같습니다.

여러분은 두 음이 아닌 정수 aa와 bb를 정해서, 흐즈로에게 질문을 할 수 있습니다. 질문으로 주어진 두 정수 aa와 bb에 따라, 흐즈로는 다음 값을 계산합니다.

(x−a)−b\sqrt{(x-a)}-b

흐즈로는 계산 결과에 따라 이 값이 양수인지, 음수인지, 아니면 00인지 여러분에게 알려줍니다. 7575개 이하의 질문을 사용하여 정수를 맞힐 수 있다면 여러분이 승리하고, 질문의 개수가 7575개를 초과할 경우 여러분이 패배합니다. 그러나, x−ax-a가 음수가 되는 질문을 한다면 게임이 즉시 종료되고 여러분이 패배합니다. 여러분은 과연 정수의 값을 맞히고 흐즈로를 이길 수 있을까요?

입력

첫 번째 줄에 테스트 케이스의 개수 nn이 주어집니다. (1≤n≤1001 \le n \le 100)

힌트

본 문제는 입출력의 양이 많은 관계로 최악의 경우 입출력에 약 500ms 가량의 시간이 소요될 수 있습니다. 이 점에 유의하여 문제를 해결해 주시기 바랍니다.

예제1

  1. 예제 1

    입력
    2
    
    +
    
    -
    
    0
    
    
    +
    
    0
    
    
    예상 출력
    
    ? 0 0
    
    ? 1 1
    
    ? 1 0
    
    ! 1
    ? 0 0
    
    ? 1 1
    
    ! 2