Problem ID:
split_mney
Points:
1.8 (partial)
Time limit:
1.0s
Memory limit:
512M
Input:
stdin
Output:
stdout
Author:
Problem type
Tèo nay đã lớn và có ~3~ người con. Hôm nay, sau một ngày làm việc vất vả thì cả ~3~ người con của Tèo đều có mặt và xin Tèo tiền để mua bánh. Trong túi của Tèo hiện có ~n~ tờ tiền, tờ thứ ~i~ ~(1 \le i \le n)~ có mệnh giá là ~a_i~. Tèo muốn tình yêu thương của mình đến các con thật công bằng nên sẽ tìm cách để chia sao cho tổng chênh lệch số tiền mỗi người là thấp nhất. Đồng thời Tèo muốn biết liệu mình có thể làm cho tổng chênh lệch đó bằng không được hay không.
Dữ liệu vào
- Dòng đầu tiên chứa số nguyên ~n~ ~(1 \le n \le 18)~ là số tờ tiền mà Tèo đang có.
- Dòng tiếp theo chứa ~n~ số nguyên ~a_i~ ~(1 \le a_i \le 10^{11})~ là mệnh giá của tờ tiền thứ ~i~.
Kết quả
- Dòng đầu tiên xuất ra
Yes
nếu tồn tại cách có tổng chênh lệch bằng ~0~, ngược lại xuất ra tổng chênh lệch nhỏ nhất có thể. - Dòng thứ ~2~ xuất ra các mệnh giá các tờ tiền mà Tèo cho người con thứ nhất.
- Dòng thứ ~3~ xuất ra các mệnh giá các tờ tiền mà Tèo cho người con thứ hai.
- Dòng thứ cuối xuất ra các mệnh giá các tờ tiền mà Tèo cho người con thứ ba.
Lưu ý: Các số trên cùng một dòng cách nhau ít nhất một dấu cách.
Ràng buộc
- Có ~50\%~ số điểm có ~n \le 10~.
- ~50\%~ số điểm còn lại không có ràng buộc gì thêm.
Ví dụ 1
Dữ liệu
4
1 2 1 2
Kết quả
Yes
1 1
2
2
Ví dụ 2
Dữ liệu
4
1 2 1 3
Kết quả
1
1 1
2
3
Comments