CODE của em đây: http://ideone.com/nPjhWA
Thuật toán:
B1: Tính a[i] là tổng từ 1 đến i.
B2: Kiểm tra a[n] có chia hết cho k không. Nếu có: Chia làm 2 trường hợp
XL1: TH: a[n]=0: Đi đếm tất cả những vị trí có tổng =0 (s[k]) . Khi đó dùng res= tổ hợp chập k-1 của s[k]-1.
XL: TH: a[n]<>0: đặt h=a[i] div m với m=a[n] div k và a[i] mod m=0.
Gọi s[h] là số đoạn chia được làm h phần. -> res=s[k-1];