TS10 Quảng Ninh 2026 - Chia phần

Xem dạng PDF

Gửi bài giải

Điểm: 20,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 1G
Input: stdin
Output: stdout

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

Người ta thường nói rằng hai anh em có xu hướng chia sẻ mọi thứ một cách công bằng nhất có thể. Ở đây, ta xét một tình huống khá thú vị liên quan đến hai anh em An và Bình.

An vừa mua ~n~ gói kẹo được đánh số từ ~1~ đến ~n~, trong đó gói ~i~ ~(1 \le i \le n)~ chứa một số dương kẹo là ~a_i~. Tổng số kẹo là ~S = a_1 + a_2 + \dots + a_n~. Hai anh em cần chia số kẹo này cho nhau. Họ không chỉ quan tâm đến số lượng kẹo, mà còn quan tâm đến số lượng gói kẹo. Sau nhiều tranh luận, hai anh em thống nhất quy trình sau.

Trước tiên, An sẽ tạo ra một hoán vị của các gói, nghĩa là sắp xếp lại các gói theo một thứ tự tùy ý. Gọi hoán vị này theo chỉ số là ~i_1, i_2, \dots, i_n~, trong đó ~\{i_1, i_2, \dots, i_n\} = \{1, 2, \dots, n\}~. Sau đó, An đưa các gói ~a_{i_1}, a_{i_2}, \dots~ cho Bình theo thứ tự đó, cho đến khi tổng số kẹo đã đưa lớn hơn hoặc bằng ~\frac{S}{2}~. Sau đó An giữ các gói còn lại cho mình và việc chia kẹo kết thúc.

An yêu thương em mình, vì vậy anh ấy sẽ cố gắng tối thiểu hóa độ chênh lệch giữa số gói mà hai anh em nhận được. Do đó, An muốn chọn một hoán vị sao cho độ chênh lệch này là nhỏ nhất trong tất cả các hoán vị có thể của các gói kẹo. Hãy giúp An xác định một hoán vị như vậy. Nếu có nhiều đáp án, bạn có thể đưa ra bất kỳ đáp án nào.

Input

Dòng đầu tiên chứa số nguyên ~n~ ~(1 \le n \le 2 \times 10^5)~ là số lượng gói kẹo.

Dòng thứ hai chứa ~n~ số nguyên ~a_1, a_2, \dots, a_n~ ~(1 \le a_i \le 10^9)~ là số kẹo trong các gói.

Output

In ra hoán vị của các chỉ số gói kẹo ~1, 2, \dots, n~, sao cho độ chênh lệch giữa số gói trong hai phần nhận được là nhỏ nhất.

Scoring

Subtask Điểm Ràng buộc
1 ~20\%~ Mỗi giá trị ~a_i~ xuất hiện chẵn lần
2 ~20\%~ ~n \le 10~
3 ~20\%~ ~n \le 20~
4 ~20\%~ ~n \le 2000~
5 ~20\%~ Không có ràng buộc gì thêm

Sample Input 1

9
5 6 6 3 1 1 4 4 3

Sample Output 1

6 4 9 3 2 5 7 8 1

Sample Input 2

8
2 2 3 2 3 2 2 3

Sample Output 2

2 4 8 5 1 6 7 3

Notes

Trong ví dụ đầu tiên, kết quả chỉ là một trong nhiều đáp án đúng. Số kẹo trong các gói sau khi được sắp xếp lại là: ~5, 3, 4, 4, 1, 3, 6, 6, 1~. Bình sẽ nhận các gói có chỉ số: ~1, 4, 7, 8, 5~. Như vậy Bình nhận được số kẹo là: ~5 + 3 + 4 + 4 + 1 = 17~. Lưu ý rằng: ~5 + 3 + 4 + 4 = 16 < \frac{S}{2} = 16,5~, nên An không thể dừng sớm hơn. An sẽ lấy các gói còn lại, vì vậy độ chênh lệch giữa số gói trong hai phần là: ~|5 - 4| = 1~. Có thể chứng minh rằng độ chênh lệch này là tối ưu.


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.