Một tập hợp ~A = \{a_1, \ldots, a_k\}~ gồm ~k~ số tự nhiên khác nhau có tổng các phần tử là ~n~ gọi là tập sinh chính phương nếu tổng của bất kỳ ~k-1~ phần tử trong ~A~ đều là số chính phương.
Ví dụ: Tập ~A = \{1, 22, 41, 58\}~ gồm ~k = 4~ phần tử có tổng các phần tử ~n = 122~ là một tập sinh chính phương vì tổng ~3~ số bất kỳ trong ~A~ đều là số chính phương:
- ~1 + 22 + 41 = 64 = 8^2~
- ~1 + 22 + 58 = 81 = 9^2~
- ~1 + 41 + 58 = 100 = 10^2~
- ~22 + 41 + 58 = 121 = 11^2~
Yêu cầu
Cho hai số nguyên ~n~ và ~k~. Đếm số tập hợp ~A~ gồm ~k~ phần tử có tổng các phần tử là ~n~ và tổng của ~k-1~ phần tử bất kỳ trong tập này đều là số chính phương.
Chú ý: Hai tập được coi là khác nhau nếu tồn tại một phần tử có trong tập này và không có trong tập kia.
Dữ liệu đầu vào
Gồm hai số nguyên ~n~ và ~k~ ~(2 \le n \le 10000; 2 \le k \le 10)~.
Dữ liệu đầu ra
Gồm một số duy nhất là số tập ~A~ thỏa mãn tìm được.
Ràng buộc dữ liệu
- Có 25% số test tương ứng với 25% số điểm có ~k = 2~ (tập ~A~ chỉ có ~2~ phần tử).
- Có 50% số test tương ứng với 50% số điểm có ~k = 3~ (tập ~A~ chỉ có ~3~ phần tử).
- Có 25% số test tương ứng với 25% số điểm không có ràng buộc gì thêm.
Ví dụ
Ví dụ 1
INPUT
20 2
OUTPUT
1
Giải thích: Có ~1~ tập tìm được là ~\{4, 16\}~.
Bình luận