Diferente pentru problema/present intre reviziile #1 si #5

Nu exista diferente intre titluri.

Diferente intre continut:

== include(page="template/taskheader" task_id="present") ==
Poveste şi cerinţă...
Laika a decis să îi facă un cadou prietenei ei Azusa, vrăjitoarea din munţi. Din motive pe care nu le cunoaştem, cadoul va fi o mulţime finită de numere întregi pozitive. Ar fi o chestiune simplă să alegi un cadou, dar mai mulţi factori complică această sarcină.
 
În primul rând, duşmanul lui Laika, Flatorte, are puteri magice misterioase: dându-se două numere întregi $x$ şi $y$ ea poate crea cel mai mare divizor comun al lui $x$ şi $y$ (i.e. $gcd(x, y)$). Dacă Laika oferă un cadou în care Flatorte ar putea să adauge măcar un element (i.e. dacă oferă mulţimea $A$ pentru care $x, y$ apartin lui $A$, dar $gcd(x, y)$ nu apartine lui $A$), atunci Flatorte poate imediat să îşi tachineze rivalul. Din aceste motive, cadoul lui Laika nu trebuie să poată fi îmbunătăţit cu ajutorul puterilor lui Flatorte: dacă ea oferă mulţimea $A$ atunci pentru orice $x, y$ ce apartin lui $A$ trebuie să fie satisfăcută condiţia că $gcd(x, y)$ apartine lui $A$.
 
În al doilea rând, Laika vrea ca cadoul ei să aibă o semnificaţie specială. Au trecut exact $K$ zile de când a cunoscut-o pe Azusa şi ea vrea ca cadoul să indice acest lucru. De aceea Laika a aranjat toate mulţimile care satisfac condiţia explicată mai sus în ordine Laikană (explicată mai jos), obţinând astfel un şir infinit de mulţimi finite $S{~0~}, S{~1~}, ...$. Ea vrea să selecteze ca cadou mulţimea $S{~K~}$. Puteţi să o ajutaţi să îndeplinească această sarcină?
 
*Ordine Laikană.* Selectăm două mulţimi $A$ şi $B$. Atunci, $A$ apare înaintea lui $B$ în ordinea Laikană dacă şi numai dacă $max A < max B$, sau $max A = max B$ şi $A - { max A }$ apare înaintea lui $B - { max B }$ în ordinea Laikană. În scopul acestei definiţii, fie $max {} = -infinit$. Observaţi că această ordine este întotdeauna bine definită pentru mulţimi finite de numere întregi pozitive.
h2. Date de intrare
Fişierul de intrare $present.in$ ...
Prima linie de input conţine un număr întreg $T$-numărul de teste. Fiecare din următoarele $T$ linii conţin o valoare $K$ pentru care noi vrem să aflăm $S{~K~}$.
h2. Date de ieşire
În fişierul de ieşire $present.out$ ...
Pentru fiecare $T$ valori a lui $K$, afişaţi mulţimea $S{~K~}$. Pentru a afişa o mulţime, afişaţi o linie care începe cu numărul de elemente a mulţimii, iar apoi elementele acesteia, în ordine crescătoare.
 
h2. Restrictii
h2. Restricţii
* $1 &le; T &le; 5$
* Pentru 18 puncte, $0 &le; K &le; 100$.
* Pentru alte 18 puncte, $0 &le; K &le; 1 000 000$.
* Pentru alte 18 puncte, $0 &le; K &le; 500 000 000$.
* Pentru alte 18 puncte, $0 &le; K &le; 1000 000 000$.
* Pentru restul punctelor, $0 &le; K &le; 1500 000 000$.
* $... &le; ... &le; ...$
h2. Exemplu
h2. Exemple
table(example). |_. present.in |_. present.out |
| This is some
  text written on
  multiple lines.
| This is another
  text written on
  multiple lines.
|
| 5
0
1
2
3
4
|0
1 1
1 2
2 1 2
1 3|
|4
5
6
100
1000 | 2 1 3
3 1 2 3
5 1 2 3 7 8
7 1 2 3 5 10 11 12 |
h3. Explicaţie
h2. Explicatii
...
Observaţi că $S{~0~} = {}, S{~1~} = {1}, S{~2~} = {2}, S{~3~} = {1, 2}, S{~4~} = {3}, S{~5~} = {1, 3}, S{~6~} = {1, 2, 3}, S{~100~} = {1, 2, 3, 7, 8}, S{~1000~} = {1, 2, 3, 5, 10, 11, 12}$. Acestea sunt exact mulţimile afişate în exemplu (împreună cu mărimile lor). Observaţi că $S{~6~} != {2, 3}$, deaorece $2, 3$ apartin lui ${2, 3}$, dar $gcd(2, 3) = 1$ ce nu apartine lui ${2, 3}$.
== include(page="template/taskfooter" task_id="present") ==

Nu exista diferente intre securitate.

Topicul de forum nu a fost schimbat.