Đây là bài toán tương tác.
Little Cyan Fish có một số nguyên bí mật $a$ ($1 \le a \le 100$). Bạn cần tìm ra số nguyên này.
Trong mỗi truy vấn, bạn chọn một số nguyên $x$. Little Cyan Fish sẽ cho bạn biết liệu $x$ có bằng số nguyên bí mật của cậu ấy hay không. Hãy tìm số nguyên bí mật đó trong tối đa $100$ truy vấn.
Giao tiếp
Để thực hiện một truy vấn, hãy in ra một dòng theo định dạng sau: "$?\ x$", trong đó $x$ là một số nguyên ($1 \le x \le 100$). Để phản hồi cho truy vấn, bạn sẽ nhận được một từ duy nhất là yes hoặc no, tương ứng có nghĩa là $x = a$ hoặc $x \ne a$. Bạn phải đảm bảo rằng số lượng truy vấn bạn thực hiện không vượt quá $100$.
Để báo cáo đáp án, hãy xuất ra một dòng theo định dạng sau: "$!\ x$", trong đó $x$ là số nguyên bí mật. Việc báo cáo đáp án không được tính là một truy vấn. Nhận được yes không kết thúc quá trình tương tác: bạn vẫn phải báo cáo đáp án. Chương trình của bạn phải kết thúc ngay lập tức sau khi báo cáo đáp án. Sau khi xuất một truy vấn hoặc báo cáo đáp án, đừng quên xuất ký tự xuống dòng và làm rỗng bộ đệm xuất (flush output stream).
Trong bài toán này, trình chấm tương tác không thích ứng (not adaptive). Số nguyên bí mật được cố định trước khi quá trình tương tác bắt đầu và không thay đổi trong suốt quá trình tương tác.
Ví dụ
Dữ liệu vào 1
no no yes
Dữ liệu ra 1
? 1 ? 2 ? 3 ! 3
Ghi chú
Trong ví dụ đầu tiên, số nguyên bí mật là $3$. Các truy vấn với $x = 1$ và $x = 2$ nhận được no, và truy vấn với $x = 3$ nhận được yes. Sau đó lời giải báo cáo ! 3.
Trong ví dụ thứ hai, số nguyên bí mật là $1$. Truy vấn đầu tiên nhận được yes, và lời giải báo cáo ! 1.
Công cụ kiểm thử: Một công cụ kiểm thử được cung cấp để giúp thí sinh phát triển và kiểm tra lời giải của mình. Bạn có thể tải công cụ này từ phần tệp đính kèm. Thực thi công cụ với tùy chọn -h sẽ mô tả cách sử dụng nó. Công cụ này kiểm tra quá trình tương tác và đáp án được báo cáo, nhưng không áp đặt giới hạn thời gian hay bộ nhớ.