cluburi

Time limit: 0.05s Memory limit: 2MB Input: cluburi.in Output: cluburi.out

La şcoala Iuliei, în clasa a V-a sunt nn elevi. Pentru că aşa e moda la această şcoală, fiecare dintre cei nn 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 nn şi care să determine:

  1. cel mai mic număr natural kk de cluburi care continuă să existe după ce s-au produs toate unificările;
  2. 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 nn, 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 kk, 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, kk 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

  • 1n30 0001 \leq n \leq 30 \ 000
  • Î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 11, 30%30\% din punctaj, iar pentru cerinţa 22, 70%70\% din punctaj

Exemplul 1

cluburi.in

7

cluburi.out

3
1 2 4

Explicaţie

66 elevi formează 33 cluburi având fiecare câte 22 membri, iar elevul rămas formează la rândul lui un club (cu un singur membru).
Apoi 22 dintre cluburile cu câte 22 membri se unesc şi formează un singur club cu 44 membri, deci sunt 33 cluburi: 11 cu un membru, 11 cu 22 membri şi 11 cu 44 membri.

cluburi.in

24

cluburi.out

2
8 16

Explicaţie

Iniţial se formează 1212 cluburi cu câte 22 membri, apoi 66 cu câte 44 membri.
Din cele 66 cluburi se vor forma apoi 33 cu câte 88 membri.
Două dintre cluburile cu 88 membri se unesc formand unul cu 1616 membri. În final rămân 22 cluburi, unul cu 88, iar celălalt cu 1616 membri.

Log in or sign up to be able to send submissions!