În fața palatului Prințesei Mofturoase se află n
pețitori așezați la coadă, unul în spatele celuilalt. Fiecare poartă sub mantie un număr de pietre prețioase pe care dorește să le ofere prințesei ca dar de nuntă. Pentru a nu semăna vrajbă în rândurile lor, prințesa a decis să-i determine ca n-1
dintre ei să renunțe în chip pașnic, pețitorul rămas devenind alesul prințesei (indiferent de numărul de pietre prețioase deținute de acesta). Doi pețitori vecini la coadă se pot înțelege între ei astfel: cel care are mai puține pietre prețioase pleacă de la coadă primind de la celălalt un număr de pietre astfel încât să plece acasă cu un număr dublu de pietre față de câte avea. Dacă doi pețitori au același număr de pietre, unul din ei (nu contează care) pleacă luând toate pietrele vecinului său. Un pețitor se poate înțelege la un moment dat cu unul singur dintre cei doi vecini ai săi. După plecarea unui pețitor, toți cei din spatele lui avansează.
De exemplu: pentru configurația de mai jos de 5
pețitori, un șir posibil de negocieri care conduc la reducerea cozii la un singur pețitor este: se înțeleg vecinii 4
cu 5
și pleacă 4
, se înțeleg apoi 1
cu 2
și pleacă 1
, se înțeleg apoi 3
cu 2
și pleacă 3
, se înțeleg 2
cu 5
și pleacă 5
. Astfel pețitorul 2
câștiga mâna preafrumoasei prințese, oferindu-i 0 pietre prețioase ca dar de nuntă.
Fie P
numărul de pietre prețioase pe care le are pețitorul care va deveni alesul prințesei.
Cerința
Se cer valorile distincte ale lui P
la care se poate ajunge prin toate succesiunile de negocieri posibile.
Date de intrare
Fișierul de intrare nunta1.in
conține pe prima linie numărul de pețitori n
, iar pe a doua linie n
numere naturale din intervalul [0,20]
, reprezentând numărul de pietre prețioase pe care le dețin pețitorii, în ordinea în care stau la coadă.
Date de ieșire
Fișierul de ieșire nunta1.out
va conține pe prima linie numărul m
de valori distincte ce pot fi obținute, iar pe a doua linie cele m
valori ordonate crescător, reprezentând valorile care se pot obține.
Restricții și precizări
1 ≤ n ≤ 50
- numerele de pe a doua linie a fișierului de intrare vor fi cuprinse între
0
și20
Exemplu:
nunta1.in
4 1 4 2 6
nunta1.out
3 1 3 5
Explicație
De exemplu, suma 1
se poate obține astfel: al doilea nuntaș dă o piatră primului și rămân ultimii trei nuntași cu valorile 3 2 6
. Apoi ultimul nuntaș dă penultimului 2
pietre și rămân doi nuntași cu valorile 3 4
. Acum nuntașul cu 4
pietre dă trei pietre celuilalt și rămâne singur cu o piatră.