EZINTER

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Lua, Node JS, ObjectiveC, Output, Prolog, Pypy, Pypy 3, Scala
Điểm: 1500 (p) Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Đây là bài toán interactive.

Các bạn có thể tìm hiểu về dạng này này tại đây.

ami có một số \(n, n\leq10000\). Các bạn sẽ không biết số này. Các bạn cần đoán số này dùng không quá 30 thao tác sau:

  • Các bạn có thể hỏi ami một dãy số \(A\) gồm \(k\) phần tử nguyên dương \((k\leq5000)\). ami sẽ trả về một số bất kì \(A_i\) trong dãy số mà \(n\) chia hết cho \(A_i\) (\(n \% A_i = 0\)).

Để hỏi ami, các bạn cần in ra câu hỏi có dạng sau:

  • ? k A_1 A_2 A_3 ... A_k

Ví dụ, để hỏi dãy có \(4\) phần tử là \(1\ 2\ 3\ 4\), các bạn cần in ra ? 4 1 2 3 4 (dấu ngoặc kép chỉ để nhấn mạnh).

Đương nhiên, sau khi in ra câu hỏi, các bạn cần phải xuống dòng và flush câu hỏi này. Sau đó ami sẽ trả lời lại các bạn, câu trả lời có dạng sau:

  • \(x\).

Nếu \(x = -1\), điều này có nghĩa rằng câu hỏi mà các bạn hỏi là không hợp lệ. Các bạn cần dừng chương trình ngay và nhận kết quả là "Wrong answer". Nếu chương trình không dừng lại, các bạn sẽ nhận được một thông báo bất kì, vì các bạn đang tương tác với ami đã đi gánh team.

Nếu \(x = 0\), điều này có nghĩa rằng, không tồn tại \(A_i\)\(n\) chia hết cho \(A_i\).

Nếu \(x > 0\), ami sẽ đảm bảo rằng \(n\) chia hết cho \(A_x\).

Sau khi các bạn đã đoán ra số \(n\), các bạn cần thông báo cho ami. Thông báo như sau:

  • ! n

Ví dụ, số các bạn đoán là \(69\), các bạn cần thông báo ! 69 (dấu ngoặc kép chỉ để nhấn mạnh).

Example

Test 1

Input
1
2
4
3
0
Output
? 4 4 2 3 1
? 4 1 2 3 4
? 4 1 2 3 4
? 4 1 2 3 4
? 4 69 96 69 96
! 12
Note

Giải thích: Số \(n\) của ami\(12\). Nếu các bạn hỏi ? 4 1 2 3 4, ami sẽ chọn ra 1 số bất kì vì \(12\) đều chia hết cho \(1, 2, 3, 4\). Ở câu hỏi đầu, ami cho các bạn số \(A_1 = 4\). Với câu hỏi ? 4 69 96 69 96, ami đưa ra số \(0\)\(12\) không chia hết cho \(69\)\(96\).

Cách tính điểm

Để dễ dàng cho các bạn, nếu ami cần \(a\) câu hỏi, các bạn hỏi \(b\)\(b \leq 30\) câu thì số điểm nhận được là \(\max(1, \frac{a}{b})\). Nếu \(b > 30\), các bạn sẽ nhận được 0 điểm.

Bình luận (3)

Mới nhất
Tải bình luận...

Kỳ thi: