La şcoala Iuliei, în clasa a V-a sunt elevi. Pentru că aşa e moda la această şcoală, fiecare dintre cei copii şi-a creat câte un club. Fiecare club are iniţial un singur membru: copilul care l-a creat. Copiii au hotărât că numărul membrilor unui club poate să crească prin unificarea cu un alt club după următoarea regulă: două cluburi se pot unifica dacă au acelaşi număr de membri. Prin unificare, unul dintre cluburi continuă să existe, iar celălalt se desfiinţează. Clubul care continuă să existe preia toţi membrii clubului care se desfiinţează.
Deoarece elevii se distrează mai bine atunci când clubul are mai mulţi membri, ei au hotărât să unifice cluburile după regula de mai sus, cât timp unificarea este posibilă.
Cerinţă
Scrieţi un program care să citească numărul natural şi care să determine:
- cel mai mic număr natural de cluburi care continuă să existe după ce s-au produs toate unificările;
- pentru fiecare dintre cluburi, numărul de membri.
Date de intrare
Fişierul de intrare cluburi.in
conţine o singură linie pe care este scris un număr natural nenul , reprezentând numărul de elevi din clasa a V-a.
Date de iesire
Fişierul de ieşire cluburi.out
va conţine:
- pe prima linie un număr natural , reprezentând cel mai mic număr de cluburi care continuă să existe după ce s-au produs toate unificările
- pe a doua linie, numere naturale nenule, separate prin câte un spaţiu, reprezentând numărul de membri ai fiecărui club, în ordinea crescătoare a numărului de membri.
Restricţii şi precizări
- În cazul în care numărul elevilor este impar se consideră că elevul rămas singur formează un club.
- Pentru fiecare test de intrare se poate determina cel puţin un club.
- Se acordă punctaje parţiale: cerinţa , din punctaj, iar pentru cerinţa , din punctaj
Exemplul 1
cluburi.in
7
cluburi.out
3
1 2 4
Explicaţie
elevi formează cluburi având fiecare câte membri, iar elevul rămas formează la rândul lui un club (cu un singur membru).
Apoi dintre cluburile cu câte membri se unesc şi formează un singur club cu membri, deci sunt cluburi: cu un membru, cu membri şi cu membri.
cluburi.in
24
cluburi.out
2
8 16
Explicaţie
Iniţial se formează cluburi cu câte membri, apoi cu câte membri.
Din cele cluburi se vor forma apoi cu câte membri.
Două dintre cluburile cu membri se unesc formand unul cu membri. În final rămân cluburi, unul cu , iar celălalt cu membri.