Chia Nhóm
Xem dạng PDFCho một dãy ~A~ gồm ~n~ số nguyên. Hãy tìm cách chia dãy thành ~k~ nhóm sao cho tổng các phần tử trong mỗi nhóm bằng nhau. Mỗi nhóm phải chứa ít nhất một phần tử, và mỗi phần tử thuộc đúng một nhóm.
Dữ liệu vào
- Dòng đầu tiên chứa hai số nguyên ~n~ và ~k~.
- Dòng thứ hai chứa ~n~ số nguyên ~A_1, A_2, \ldots, A_n~.
Kết quả
In ra ~n~ số nguyên, trong đó số thứ ~i~ là chỉ số nhóm (một số từ ~1~ đến ~k~) của phần tử thứ ~i~. Nếu có nhiều đáp án, in ra một đáp án bất kỳ.
Nếu không có cách chia nào thỏa mãn, in ra một số ~0~ duy nhất.
Ví dụ
Đầu vào:
5 3
1 4 6 9 10
Đầu ra:
1 2 2 1 3
Giải thích: Tổng của cả dãy là ~30~, nên mỗi nhóm phải có tổng ~10~. Nhóm ~1~ gồm ~A_1 + A_4 = 1 + 9 = 10~, nhóm ~2~ gồm ~A_2 + A_3 = 4 + 6 = 10~, nhóm ~3~ gồm ~A_5 = 10~. Các đáp án 1 3 3 1 2 hay 3 1 1 3 2 cũng được chấp nhận.
Giới hạn
- ~2 \le k < n \le 10~
- ~1 \le A_i \le 100~
Bình luận