Sắn có \(n\) con bò sữa, con thứ \(i\) cho \(a_i\) đơn vị sữa mỗi ngày, và hai chuồng bò. Mỗi con bò được nhốt vào chuồng thứ nhất, chuồng thứ hai hoặc không được nhốt vào chuồng nào. Yêu cầu: tổng lượng sữa của chuồng thứ nhất bằng tổng lượng sữa của chuồng thứ hai. Bò không có chuồng sẽ không cho sữa nữa.
Sắn muốn tổng lượng sữa thu được (của cả hai chuồng cộng lại) là lớn nhất có thể.
Hãy tìm lượng sữa lớn nhất đó, đồng thời liệt kê mọi tập bò bị bỏ ngoài chuồng mà vẫn đạt được lượng sữa lớn nhất (hai cách chia khác nhau nhưng có cùng tập bò bị bỏ ngoài chỉ được tính một lần). Cho phép để trống cả hai chuồng.
Input
- Dòng đầu tiên gồm số nguyên dương \(n\).
- Dòng thứ hai gồm \(n\) số nguyên dương \(a_1, a_2, \dots, a_n\).
Output
- Dòng đầu tiên: lượng sữa lớn nhất thu được.
- Các dòng tiếp theo: mỗi dòng là một tập bò bị bỏ ngoài chuồng (liệt kê số thứ tự các con bò theo thứ tự tăng dần, cách nhau một dấu cách). Các tập được in theo thứ tự từ điển tăng dần (so sánh từng số nguyên, dãy ngắn hơn là tiền tố của dãy dài hơn thì đứng trước).
- Nếu tất cả bò đều được nhốt vào chuồng thì chỉ in đúng một dòng
OKthay cho danh sách tập. - Nếu không thể nhốt con nào (lượng sữa lớn nhất là \(0\)) thì tập bò bị bỏ ngoài chỉ có một, gồm tất cả các con bò.
Constraints
- \(1 \le n \le 15\)
- \(1 \le a_i \le 10^9\)
Sample Input 1
7
4 6 10 3 7 5 2
Sample Output 1
34
4
Sample Input 2
6
2 3 3 5 9 4
Sample Output 2
26
OK
Explanation
Ở ví dụ 1 tổng sữa là \(37\) (lẻ) nên phải bỏ ra ít nhất một con; bỏ con thứ \(4\) (\(3\) đơn vị) còn lại \(34\), chia được thành hai chuồng \(17 + 17\) (ví dụ \(4+6+7\) và \(10+5+2\)). Ở ví dụ 2 cả sáu con đều nhốt được: \(2+3+3+5 = 13 = 9+4\).
Bình luận
Đăng nhập để bình luận
Chưa có bình luận nào.