Điểm:
1600 (p)
Thời gian:
1.0s
Bộ nhớ:
1G
Input:
bàn phím
Output:
màn hình
Lê có \(n\) hạt cườm, hạt thứ \(i\) (\(1 \le i \le n\)) có mã màu là \(c_i\). Lê muốn chọn ra đúng \(m\) (\(m < n\)) hạt để làm một vòng tay. Vì rất yêu thích số \(s\) nên Lê muốn đếm xem có bao nhiêu cách chọn \(m\) hạt mà tổng giá trị các mã màu đúng bằng \(s\). Hai cách được gọi là khác nhau nếu tồn tại một hạt được chọn trong cách này nhưng không thuộc trong cách kia.
Yêu cầu: Cho các số nguyên dương \(c_1,c_2,...,c_n\) là mã màu của \(n\) hạt cườm và hai số nguyên dương \(m,s\), hãy đếm số cách chọn \(m\) hạt để tổng giá trị các mã màu của các hạt được chọn bằng \(s\).
Input
- Dòng đầu tiên gồm ba số nguyên \(n,m,s\).
- Dòng thứ hai chứa \(n\) số nguyên dương \(c_1,c_2,...,c_n\) (\(1 \le c_i \le 10^9\)).
Output
- Một dòng chứa một số nguyên là số cách chọn thỏa mãn.
Scoring
- Subtask \(1\) (\(30\%\) số điểm): \(m = n-1, n \le 18\).
- Subtask \(2\) (\(40\%\) số điểm): \(n \le 18\).
- Subtask \(3\) (\(30\%\) số điểm): \(n \le 36\).
Example
Test 1
Input
5 4 10
2 2 3 2 3
Output
3
Bình luận
Nhánh cận là được 19 test, còn dùng Meet in the Middle (MITM) hay được gọi là kỹ thuật phân chia và chinh phục (Divide and Conquer) hoặc bitmask là AC được:), bài đây nhánh cận thui là đủ rùi chứ cách còn lại hơi khó.
hint
Rồi gì nữa giúp tui
Giúp tui trên đây
khó vãi cức
help me
dqcn là đc
Duyệt phân tập (Meet-in-the-middle) là AC nha