Đ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 n món ăn, đánh số từ 1 đến n. Nội đã gọi đúng k món khác nhau; tập các món đã gọi được giữ bí mật, gọi là S.

Bạn được phép hỏi Nội bằng cách đưa ra hai số nguyên x và y (1≤x,y≤n). Khi đó:

  • Với số x, Nội chọn một món a∈S sao cho |x−a| nhỏ nhất có thể (có thể a=x).
  • Với số y, Nội chọn một món b∈S sao cho |y−b| nhỏ nhất có thể.
  • Nội trả lời TAK nếu |x−a|≤|y−b|, và trả lời NIE trong trường hợp ngược lại.

Bằng không quá 60 truy vấn, hãy chỉ ra hai món khác nhau bất kỳ thuộc S.

Dữ liệu vào

Dòng đầu tiên chứa hai số nguyên n và k — 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 1≤x,y≤n.

Khi đã sẵn sàng trả lời, in ra một dòng dạng 2 x y với x≠y và cả hai đều là món thuộc S, 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á 60 truy vấn, in ra số nằm ngoài đoạn [1,n], hoặc đưa ra hai món không hợp lệ.

Ràng buộc

  • 2≤k≤n≤105
  • Tối đa 60 truy vấn loại 1

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 2 và món 3. Truy vấn (2,3): cả hai đều là món đã gọi nên khoảng cách bằng 0≤0, trả lời TAK. Truy vấn (1,2): món gần 1 nhất là 2 với khoảng cách 1, còn 2 có khoảng cách 0, vì 1>0 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 1,3,5. Truy vấn (1,3) cho TAK vì cả 1 và 3 đều thuộc S; điều này xác nhận 1 cũng là món đã gọi, nên có thể trả lời cặp (3,1).

Bình luận

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

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0