Tập con tổng trong [L, R]
Xem dưới dạng PDF
Gửi bài giải
Điểm:
30
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 đếm số lượng tập con có tổng nằm trong đoạn [L, R] (bao gồm cả L và R).
Sử dụng 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 nửa thứ hai, với mỗi tổng s ở nửa đầu, dùng binary search đếm số tổng ở nửa thứ hai thuộc [L - s, R - s].
Đầu vào
- Dòng đầu tiên chứa ba số nguyên N (\(1 \le N \le 40\)), L, R (\(1 \le L \le R \le 10^18\)).
- Dòng thứ hai chứa N số nguyên dương \(A_i\) (\(1 \le A_i \le 10^15\)).
Đầu ra
Số lượng tập con có tổng thuộc [L, R].
Ví dụ
Input:
6 10 20
2 3 5 8 13 21
Output:
12
Ràng buộc & Subtasks
| Subtask | Điểm | Ràng buộc |
|---|---|---|
| 1 | 30% | Tương ứng với các bộ test có kích thước nhỏ |
| 2 | 70% | Không có ràng buộc gì thêm ngoài định dạng đầu vào |
Nhận xét