Fişierul intrare/ieşire:oposumi.in, oposumi.outSursăONSEPI 2021, clasa a 9-a
AutorMihaela CismaruAdăugată deAndrei-27Arhire Andrei Andrei-27
Timp execuţie pe test0.1 secLimită de memorie32000 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise | Statistici

Oposumi

O familie de oposumi are o vizuină cu N niveluri şi N·(N+1)/2 camere dispuse în formă de matrice triunghiulară cu N linii. În fiecare cameră poate locui un singur oposum. Vizuina a fost săpată în pământ de către oposumi, iar nivelul 1 (cel mai de sus) este cel mai apropiat de suprafaţa solului. Pe fiecare nivel I se află I camere. Dacă avem I < J, atunci nivelul I va fi poziţionat mai sus decât nivelul J, adică nivelul I va fi mai aproape de suprafaţa solului decât nivelul J. În familia de oposumi se află exact N*(N+1)/2 membri cu vârste cuprinse între 1 şi N*(N+1)/2, vârste distincte. Regula de bază în vizuina familiei de oposumi este următoarea: în camera de pe linia I şi coloana J trebuie să locuiască un oposum mai tânăr decât în camerele de pe poziţiile (I+1, J) respectiv (I+1,J+1). Un oposum de vârsta X se consideră mai tânăr decât un oposum de vârsta Y dacă X < 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.

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

Cerinţa 1 (50 de puncte)

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ă.

Cerinţa 2 (50 de puncte)

Pentru un oposum dat de vârsta K 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 T ce poate avea valoarea 1 sau 2 astfel încât:

  • Dacă T are valoarea 1, atunci se cere rezolvarea cerinţei 1, iar în continuare se va regăsi numărul natural N reprezentând numărul de niveluri ale vizuinii.
  • Daca T are valoarea 2, atunci se cere rezolvarea cerinţei 2, iar în continuare se va regăsi numărul natural N reprezentând numărul de niveluri ale vizuinii, urmat de numărul natural K 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 se cere să se tipărească:

  • Pentru T = 1 se va afişa un şir de N·(N+1)/2 numere, unde cel de al I-lea număr reprezintă cel mai de sus nivel pe care se poate afla oposumul de vârstă I.
  • Pentru T = 2 se vor afişa N 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 K să fie poziţionat pe un nivel cât mai de sus posibil. Pe linia I se vor afişa I numere separate prin câte un spaţiu reprezentând vârstele oposumilor aşezaţi pe nivelul I.

Restricţii

  • 1 ≤ N ≤ 1000,
  • 1 ≤ K ≤ N·(N+1)/2,
  • Pentru cerinţa T = 2 soluţia nu este unică. Se acceptă orice soluţie corectă,
  • Testele nu sunt grupate.

Exemplu

oposumi.inoposumi.out
1 3
1 2 2 2 3 3
2 4 7
1
2 3
4 5 7
6 8 10 9

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

  • Oposumul de vârsta 1 poate locui la nivelul 1 .
  • Fiecare oposum cu vârsta 2, 3 sau 4 ar putea locui la nivelul 2.
  • Oposumii care au vârsta 5 sau 6 vor locui la nivelul 3.

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

Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?