Tổng Tiền Tố Âm
Đề bài
Mô tả
Cho một mảng gồm số nguyên. Mỗi vị trí được đánh dấu là khóa hoặc mở khóa.
Bạn có thể lấy các giá trị ở những vị trí mở khóa, sắp xếp lại theo thứ tự tùy ý rồi đặt trở lại vào chính các vị trí mở khóa đó. Bạn không được xóa giá trị nào, không được thêm giá trị mới, và không được thay đổi giá trị ở các vị trí khóa. Có thể giữ nguyên thứ tự ban đầu.
Gọi là dãy tổng tiền tố của mảng sau khi sắp xếp lại: , , ..., .
Gọi là giá trị lớn nhất sao cho . Nếu không có nào thỏa mãn thì .
Hãy sắp xếp lại các giá trị sao cho nhỏ nhất có thể, và in ra mảng sau khi sắp xếp.
Nếu có nhiều đáp án, in ra bất kỳ đáp án nào (giá trị ở vị trí khóa phải bằng giá trị ban đầu, còn các giá trị ở vị trí mở khóa phải là một hoán vị của các giá trị mở khóa ban đầu).
Dữ liệu vào
- Dòng đầu chứa số nguyên : số lượng bộ dữ liệu.
- Với mỗi bộ dữ liệu:
- Dòng đầu chứa số nguyên .
- Dòng thứ hai chứa số nguyên .
- Dòng thứ ba chứa số nguyên , trong đó nghĩa là vị trí mở khóa, nghĩa là vị trí khóa.
Dữ liệu ra
Với mỗi bộ dữ liệu, in ra số nguyên là mảng sau khi sắp xếp lại sao cho nhỏ nhất có thể.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 1 3 1 3 2 0 0 0 |
3 2 1 | Mọi cách sắp xếp đều cho vì mọi tổng tiền tố đều không âm. Đây là một đáp án hợp lệ. |
| 1 4 2 -3 4 -1 1 1 1 1 |
2 -3 4 -1 | Tất cả vị trí đều khóa nên phải in đúng mảng ban đầu. |
| 1 7 -8 4 -2 -6 4 7 1 1 0 0 0 1 1 0 |
-8 4 1 -2 4 7 -6 | Tổng tiền tố là , nên . Không có cách nào để . |
Vì có nhiều đáp án hợp lệ, hệ thống dùng trình chấm riêng: chỉ cần mảng in ra giữ nguyên các vị trí khóa, là một hoán vị của các giá trị mở khóa, và đạt nhỏ nhất.
Bình luận