Đoán Mảng

Xem dạng PDF

Gửi bài giải

Điểm: 0,10 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Cho một mảng nguyên ~a[1..n]~ thỏa mãn:

  • ~a[1]~ là giá trị nhỏ nhất của mảng,
  • ~a[n]~ là giá trị lớn nhất của mảng,
  • với mọi ~2 \le i \le n~, ta có ~|a[i] - a[i-1]| = 1~.

Bạn được cho thêm một tham số ~k~ và biết chắc rằng tồn tại ít nhất một vị trí ~id~ sao cho ~a[id] = k~. Nhiệm vụ của bạn là tìm ra một vị trí như vậy bằng cách thực hiện tối đa 16 lượt hỏi.

Input

Ban đầu, bạn cần đọc vào hai số nguyên ~n,~ ~k~ ~(1 \le n \le 10000)~ — kích thước mảng và giá trị cần tìm.

Interaction

Để thực hiện truy vấn, in ra một số nguyên id ~(1 \le id \le n)~ và đọc vào một chuỗi — phản hồi của máy chấm. Lưu ý hãy flush luồng ra chuẩn sau mỗi dòng được in ra bằng lệnh fflush(stdout) hoặc std::endl trong ngôn ngữ lập trình C++ hoặc các câu lệnh tương ứng ở các ngôn ngữ lập trình khác.

Máy chấm sẽ phản hồi một trong ba chuỗi:

  • BIGGER — tức là ~a[id] < k~.
  • SMALLER — tức là ~a[id] > k~.
  • HOLA — tức là ~a[id] = k~. Chương trình của bạn phải kết thúc sau khi nhận được phản hồi này.

Nếu bạn hỏi quá 16 lượt mà vẫn chưa nhận được HOLA, chương trình của bạn sẽ nhận được kết quả Wrong Answer.

Sample Input 1

BIGGER
SMALLER
HOLA

Sample Output 1

3
5
4

Notes

Giả sử mảng ẩn là ~[2,3,4,5,6,7]~ và ~k = 5~. Máy chấm in: ~6~ ~5~.

  • Truy vấn 3: ~a[3] = 4 < 5~, máy chấm trả về BIGGER.

  • Truy vấn 5: ~a[5] = 6 > 5~, máy chấm trả về SMALLER.

  • Truy vấn 4: ~a[4] = 5 = k~, máy chấm trả về HOLA. Dừng chương trình.


Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.