O familie de oposumi are o vizuină cu niveluri și camere dispuse în formă de matrice triunghiulară cu linii. În fiecare cameră poate locui un singur oposum. Vizuina a fost săpată în pământ de către oposumi, iar nivelul (cel mai de sus) este cel mai apropiat de suprafața solului. Pe fiecare nivel se află camere. Dacă avem , atunci nivelul va fi poziționat mai sus decât nivelul , adică nivelul va fi mai aproape de suprafața solului decât nivelul . În familia de oposumi se află exact membri cu vârste cuprinse între și , vârste distincte. Regula de bază în vizuina familiei de oposumi este următoarea: în camera de pe linia și coloana trebuie să locuiască un oposum mai tânăr decât în camerele de pe pozițiile respectiv . Un oposum de vârsta se consideră mai tânăr decât un oposum de vârsta dacă . 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 ei vă cer să răspundeți la două întrebări:
- 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ă;
- Pentru un oposum dat de vârsta 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 ce poate avea valoarea sau astfel încât:
- Dacă are valoarea , atunci se cere rezolvarea cerinței , iar în continuare se va regăsi numărul natural reprezentând numărul de niveluri ale vizuinii;
- Daca are valoarea , atunci se cere rezolvarea cerinței , iar în continuare se va regăsi numărul natural reprezentând numărul de niveluri ale vizuinii, urmat de numărul natural 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 se va afișa un șir de numere, unde cel de al -lea număr reprezintă cel mai de sus nivel pe care se poate afla oposumul de vârstă .
- Pentru se vor afișa 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 să fie poziționat pe un nivel cât mai de sus posibil. Pe linia se vor afișa numere separate prin câte un spațiu reprezentând vârstele oposumilor așezați pe nivelul .
Restricții și precizări
- ;
- ;
- Pentru cerința 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 poate locui la nivelul .
- Fiecare oposum cu vârsta , sau ar putea locui la nivelul .
- Oposumii care au vârsta sau vor locui la nivelul .
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 ani este nivelul , iar o așezare posibilă a oposumilor în camere este prezentată mai sus.