CSES - Permuted Binary Strings | Xâu Nhị Phân Bị Hoán Vị
Xem PDFCó một hoán vị ẩn \(a_1, a_2,\dots, a_n\) của các số nguyên \(1, 2,\dots, n\). Nhiệm vụ của bạn là tìm hoán vị này.
Để làm điều đó, bạn có thể đặt câu hỏi: bạn chọn một xâu nhị phân \(b_1b_2\dots b_n\) và sẽ nhận lại xâu nhị phân \(b_{a_1}b_{a_2}\dots b_{a_n}\).
Interaction
Đây là một bài toán tương tác. Chương trình của bạn sẽ tương tác với trình chấm bằng chuẩn vào và chuẩn ra. Bạn cần bắt đầu bằng cách đọc một số nguyên \(n\): độ dài của hoán vị.
Ở lượt của mình, bạn có thể in một trong các dạng sau:
-
"\(?\ b_1b_2\dots b_n\)", với \(b_i\in\{0, 1\}\): trình chấm sẽ trả về xâu nhị phân \(b_{a_1}b_{a_2}\dots b_{a_n}\).
-
"\(!\ a_1\ a_2 \dots a_n\)": thông báo rằng hoán vị ẩn là \(a_1, a_2,\dots, a_n\). Chương trình của bạn phải kết thúc sau đó.
Mỗi dòng cần được theo sau bởi một ký tự xuống dòng. Bạn phải đảm bảo dữ liệu được flush sau khi in mỗi dòng.
Constraints
-
\(1 \le n \le 1000\)
-
bạn được hỏi tối đa \(10\) câu hỏi loại \(?\).
Example
3
? 100
100
? 010
001
? 001
010
! 1 3 2
Giải thích: Hoán vị ẩn là \([1, 3, 2]\). Trong câu hỏi đầu tiên, \(b_1b_2b_3 = 100\) và trình chấm trả về \(b_{a_1}b_{a_2}b_{a_3} = b_1b_3b_2 = 100\). Trong câu hỏi thứ hai, \(b_1b_2b_3 = 010\) và trình chấm trả về \(b_1b_3b_2 = 001\).
Bình luận