1) Raspunsul este: aranjamente de N luate cate K.
2) Construiesti un vector S[ i], cu semnificatia S[ i]=a
1+a
2+..+a
i. Faci cu un for i=1,n : La fiecare pas i cauti j-ul minim astfel incat S[ i]-S[j-1] il divide pe K (adica a
j+a
j+1+...+a
i il divide pe K), 1<=j<=i si daca i-j e mai mare decat diferenta maxima curenta, max=j-i.
3) Citesti cuvintele intr-un vector de string-uri si il sortezi. Apoi, verifici proprietatea ceruta la vectorul sortat. Daca e respectata, se poate realiza, daca nu, nu.
Sper ca sunt corecte solutiile mele

P.S.: Nu iti va da nimeni rezolvari complete. Do it yourself!