Đoán hai món đã đặt
Đề bài
Mô tả
Đây là một bài toán tương tác (interactive).
Thực đơn của nhà hàng gồm món ăn, đánh số từ đến . Nội đã gọi đúng món khác nhau; tập các món đã gọi được giữ bí mật, gọi là .
Bạn được phép hỏi Nội bằng cách đưa ra hai số nguyên và (). Khi đó:
- Với số , Nội chọn một món sao cho nhỏ nhất có thể (có thể ).
- Với số , Nội chọn một món sao cho nhỏ nhất có thể.
- Nội trả lời TAK nếu , và trả lời NIE trong trường hợp ngược lại.
Bằng không quá truy vấn, hãy chỉ ra hai món khác nhau bất kỳ thuộc .
Dữ liệu vào
Dòng đầu tiên chứa hai số nguyên và — số món trong thực đơn và số món Nội đã gọi.
Sau mỗi truy vấn, đọc một dòng chứa xâu TAK hoặc NIE — câu trả lời cho truy vấn vừa in.
Dữ liệu ra
Mỗi truy vấn in trên một dòng theo dạng 1 x y với .
Khi đã sẵn sàng trả lời, in ra một dòng dạng 2 x y với và cả hai đều là món thuộc , rồi kết thúc chương trình.
Sau mỗi lần in, bạn phải flush output (ví dụ cout << endl hoặc cout.flush() trong C++, flush=True trong Python).
Bạn sẽ nhận kết quả sai nếu dùng quá truy vấn, in ra số nằm ngoài đoạn , hoặc đưa ra hai món không hợp lệ.
Ràng buộc
- Tối đa truy vấn loại
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 2 TAK NIE NIE |
1 2 3 1 1 2 1 1 2 2 2 3 |
Nội đã gọi món và món . Truy vấn : cả hai đều là món đã gọi nên khoảng cách bằng , trả lời TAK. Truy vấn : món gần nhất là với khoảng cách , còn có khoảng cách , vì nên trả lời NIE. |
| 5 3 TAK NIE TAK TAK |
1 3 4 1 2 3 1 1 2 1 1 3 2 3 1 |
Nội đã gọi các món . Truy vấn cho TAK vì cả và đều thuộc ; điều này xác nhận cũng là món đã gọi, nên có thể trả lời cặp . |
Bình luận