Chia kẹo - Balanced Partition
Xem dưới dạng PDF
Gửi bài giải
Điểm:
1
Giới hạn thời gian:
2.0s
Giới hạn bộ nhớ:
256M
đầu vào:
stdin
Đầu ra:
stdout
Kiểu bài tập
Cho mảng A gồm N số nguyên dương. Hãy chia mảng thành hai phần (mỗi phần tử thuộc đúng một phần) sao cho chênh lệch tổng giữa hai phần là nhỏ nhất.
Sử dụng kỹ thuật Meet in the Middle: chia mảng làm 2 nửa, sinh tất cả tổng tập con của mỗi nửa, sắp xếp và tìm tổng gần với tổng/2 nhất.
Đầu vào
- Dòng đầu tiên chứa số nguyên N (1 ≤ N ≤ 40).
- Dòng thứ hai chứa N số nguyên dương A_i (1 ≤ A_i ≤ 10^15).
Đầu ra
Chênh lệch nhỏ nhất có thể.
Ví dụ
Input:
5
1 2 3 4 5
Output:
1
Giải thích
Chia {1, 2, 5} và {3, 4}: tổng 8 và 7, chênh lệch 1.
Nhận xét