%2022. 2. 2 17:36에 작성된 글입니다%
우선 거짓 응답이 들어오지 않는다고 가정하면 \(\lceil \log_2 300\rceil = 9\)회 탐색을 진행하면 된다.
\(q=18\)의 경우 응답이 \(1\)일 때 한번 더 요청을 넣어줘서 확인하면 된다. \(2399\)의 경우에는 전부 \(1\)이니까 \(18\)번 나온다.
그 후에 관찰을 열심히 하면 발견할 수 있는 것들은:
1. 일단 응답 \(0\)은 모두 신뢰할 수 있고,
2. 응답 \(1\)의 경우에는 \(0\)인데 잘못 넘겨준 경우를 생각할 수 있는데, 그 다음 응답도 \(1\)이면 일단 \(0\)을 잘못 준 건 아니니까 신뢰할 수 있고 다음 응답이 \(0\)이면 잘못 넘겨줬을 가능성이 있다.
이제 잘 코딩하면 AC