Hoán Vị Ẩn

Đề bài

Mô tả

Có một hoán vị ẩn a1,a2,,an của các số nguyên từ 1 đến n. Nhiệm vụ của bạn là tìm ra hoán vị này bằng cách đặt câu hỏi so sánh.

Giao thức tương tác

Đây là bài toán tương tác. Chương trình của bạn giao tiếp với hệ thống đánh giá thông qua đầu vào/ra chuẩn.

Đầu tiên, chương trình đọc số nguyên n.

Sau đó, bạn có thể thực hiện hai loại thao tác:

  • ? i j (với 1i,jn, ij): Hỏi hệ thống liệu ai<aj hay không. Hệ thống trả lời YES nếu ai<aj, hoặc NO nếu aiaj.
  • ! a_1 a_2 ... a_n: Khai báo hoán vị và kết thúc chương trình.

Bạn được phép hỏi tối đa 10000 câu hỏi dạng ?.

Quan trọng: Sau mỗi lần in ra, bạn phải flush output:

  • C++: cout << endl; hoặc cout.flush();
  • Python: print(..., flush=True)

Ràng buộc

  • 1n1000
  • Số truy vấn tối đa: Q10000

Ví dụ

Chương trình Hệ thống Giải thích
3 Hệ thống cho biết n=3. Hoán vị ẩn là [3,1,2]
? 3 2 NO Hỏi: a3<a2? Không (21)
? 3 1 YES Hỏi: a3<a1? Đúng (2<3)
! 3 1 2 Khai báo hoán vị [3,1,2]. Đúng!

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.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0