Bedao Grand Contest 17 - Tìm Mảng

Xem dạng PDF

Gửi bài giải


Điểm: 0,01 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Bạn được cho một mảng ~a~ độ dài ~n~, bao gồm những số nguyên phân biệt. Mỗi phần tử trong mảng là một số nguyên dương không quá ~10^9~. Bạn cần tìm giá trị của tất cả các phần tử trong mảng.

Để làm vậy, bạn có thể thực hiện truy vấn thuộc hai loại sau:

  • "~1~ ~i~" ~(1 \leq i \leq n)~ — hỏi giá trị của ~a_i~

  • "~2~ ~k~ ~i_1, i_2, \ldots, i_k~" ~(2 \leq k \leq n, 1 \leq i_j \leq n,~ các giá trị ~i_j~ phân biệt~)~ — số ~k~ và ~k~ vị trí trong mảng. Sau khi hỏi truy vấn loại này bạn sẽ nhận được ~\frac{k(k - 1)}{2}~ số nguyên — ~|a_{i_c} - a_{i_d}|~ với mọi ~c < d~. Nói cách khác, bạn sẽ nhận được ~\frac{k(k - 1)}{2}~ giá trị tuyệt đối giữa các cặp phần tử trên các vị trí ~i_1, i_2, \ldots, i_k~. Lưu ý rằng đáp án cho truy vấn loại ~2~ được sắp xếp ngẫu nhiên.

Lưu ý: Trong bài này, số thao tác loại ~1~ bạn thực hiện không được vượt quá ~10~.

Khi bạn đã biết đáp án thì có thể in ra kết quả với truy vấn sau:

  • "~3~ ~a_1, a_2, \ldots, a_n~" ~(1 \leq a_i \leq 10^9)~ — các phần tử trong mảng ~a~. Sau truy vấn này, chương trình của bạn phải kết thúc.

Interaction

Ban đầu, bạn cần nhập vào số nguyên ~n~ ~(1 \leq n \leq 250)~ — số phần tử của mảng.

Để thực hiện truy vấn loại ~1~, in ra "~1~ ~i~" ~(1 \leq i \leq n)~ và đọc vào một số nguyên — giá trị của ~a_i~.

Để thực hiện truy vấn loại ~2~, in ra "~2~ ~k~" ~(2 \leq k \leq n)~. Trên cùng dòng đó in ra ~k~ số nguyên phân biệt cách nhau bởi dấu cách — ~i_1, i_2, \ldots, i_k~ ~(1 \leq i_j \leq n)~. Sau truy vấn này đọc vào ~\frac{k(k - 1)}{2}~ số nguyên — ~|a_{i_c} - a_{i_d}|~ với mọi ~c < d~. Các giá trị này được cho theo thứ tự ngẫu nhiên.

Khi đã biết kết quả, in ra "~3~". Trên cùng dòng đó, in ra ~n~ số nguyên cách nhau bởi dấu cách — ~a_1, a_2, \ldots, a_n~ ~(1 \leq a_i \leq 10^9)~. Chương trình của bạn phải kết thúc sau truy vấn này.

Nếu bạn nhận được kết quả là ~-1~ khi hỏi một trong hai loại truy vấn đầu tiên thì bạn đã thực hiện nhiều lượt truy vấn hơn cho phép hoặc thực hiện một truy vấn không hợp lệ. Chương trình của bạn phải kết thúc ngay và sẽ nhận được kết quả ~\text{Wrong Answer}~. Nếu không kết thúc thì chương trình của bạn có thể nhận được các kết quả khác.

Scoring

Gọi ~Q~ là tổng số truy vấn loại ~1~ và ~2~ mà bạn thực hiện trong một test, phần trăm số điểm bạn nhận được ở test đó cho bởi:

Giới hạn Điểm
~Q \leq 2 \times n~ ~30\%~
~Q \leq 30~ ~70\%~
~Q \leq 26~ ~100\%~

Sample Input 1

2

100

200

Sample Output 1


1 1

1 2

3 100 200

Bình luận

Hãy đọc nội quy trước khi bình luận.


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