oposumi

Time limit: 0.2s Memory limit: 256MB Input: oposumi.in Output: oposumi.out

O familie de oposumi are o vizuină cu NN niveluri și N(N+1)2\frac{N \cdot (N + 1)}{2} camere dispuse în formă de matrice triunghiulară cu NN linii. În fiecare cameră poate locui un singur oposum. Vizuina a fost săpată în pământ de către oposumi, iar nivelul 11 (cel mai de sus) este cel mai apropiat de suprafața solului. Pe fiecare nivel II se află II camere. Dacă avem I<JI < J, atunci nivelul II va fi poziționat mai sus decât nivelul JJ, adică nivelul II va fi mai aproape de suprafața solului decât nivelul JJ. În familia de oposumi se află exact N(N+1)2\frac{N \cdot (N + 1)}{2} membri cu vârste cuprinse între 11 și N(N+1)2\frac{N \cdot (N + 1)}{2}, vârste distincte. Regula de bază în vizuina familiei de oposumi este următoarea: în camera de pe linia II și coloana JJ trebuie să locuiască un oposum mai tânăr decât în camerele de pe pozițiile (I+1,J)(I + 1, J) respectiv (I+1,J+1)(I + 1, J + 1). Un oposum de vârsta XX se consideră mai tânăr decât un oposum de vârsta YY dacă X<YX < Y. Fiecare oposum vrea să știe care e cel mai de sus nivel pe care se poate poziționa. Din păcate, ei nu au lăbuțele făcute să programeze, așa că membrii familiei de oposumi vă cer vouă ajutorul.

Cerințe

Dându-se numărul natural NN ei vă cer să răspundeți la două întrebări:

  1. Pentru fiecare oposum să se afle nivelul cel mai de sus (cel mai aproapiat de suprafața solului) pe care se poate afla respectând regulile de vârstă;
  2. Pentru un oposum dat de vârsta KK să se afișeze matricea astfel încât oposumul să stea într-o cameră pe un nivel cât mai de sus respectând regulile de vârstă.

Date de intrare

Pe prima linie a fișierului de intrare oposumi.in se găsește numărul TT ce poate avea valoarea 11 sau 22 astfel încât:

  • Dacă TT are valoarea 11, atunci se cere rezolvarea cerinței 11, iar în continuare se va regăsi numărul natural NN reprezentând numărul de niveluri ale vizuinii;
  • Daca TT are valoarea 22, atunci se cere rezolvarea cerinței 22, iar în continuare se va regăsi numărul natural NN reprezentând numărul de niveluri ale vizuinii, urmat de numărul natural KK ce reprezintă vârsta oposumului ce se dorește poziționat pe un nivel cât mai de sus.

Date de ieșire

În fișierul de ieșire oposumi.out:

  • Pentru T=1T = 1 se va afișa un șir de N(N+1)2\frac{N \cdot (N + 1)}{2} numere, unde cel de al II-lea număr reprezintă cel mai de sus nivel pe care se poate afla oposumul de vârstă II.
  • Pentru T=2T = 2 se vor afișa NN linii, reprezentând modul în care sunt așezați oposumii în vizuină în funcție de vârstă, astfel ca oposumul de vârsta KK să fie poziționat pe un nivel cât mai de sus posibil. Pe linia II se vor afișa II numere separate prin câte un spațiu reprezentând vârstele oposumilor așezați pe nivelul II.

Restricții și precizări

  • 1N1 0001 \le N \le 1 \ 000;
  • 1KN(N+1)21 \le K \le \frac{N \cdot (N + 1)}{2};
  • Pentru cerința T=2T = 2 soluția nu este unică. Se acceptă orice soluție corectă;
  • Testele nu sunt grupate.

Exemplul 1

oposumi.in

1 3

oposumi.out

1 2 2 2 3 3

Explicație

Cel mai de sus nivel la care poate locui un oposum este:

  • Oposumul de vârsta 11 poate locui la nivelul 11.
  • Fiecare oposum cu vârsta 22, 33 sau 44 ar putea locui la nivelul 22.
  • Oposumii care au vârsta 55 sau 66 vor locui la nivelul 33.

Exemplul 2

oposumi.in

2 4 7

oposumi.out

1
2 3
4 5 7
6 8 10 9

Explicație

Cel mai de sus nivel, unde poate locui oposumul cu vârsta de K=7K = 7 ani este nivelul 33, iar o așezare posibilă a oposumilor în camere este prezentată mai sus.

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