#1114
Olivius d’Info a primit de ziua lui o stivă şi s-a bucurat foarte tare. S-a tot gândit ce să facă cu ea şi a inventat un joc de logică pentru colegii lui de clasă.
În prima fază el a scris mai multe bileţele, conţinând fiecare câte o permutare a primelor n numere naturale nenule: 1, 2, 3, … , n. Bileţelele scrise conţin permutări pentru diferite valori ale lui n.
A clasificat aceste permutări în permutări stivuite şi permutări nestivuite.
O permutare este stivuită dacă se poate obţine pe parcursul introducerii în stivă a numerelor 1, 2, 3, ...,n în această ordine, prin extragerea elementelor, în ordinea indicată în permutare.
O permutare nestivuită este o permutare care NU se poate obţine prin procedeul de mai sus.
Respectând procedeul lui Olivius, pentru n=4, permutarea stivuită (2,1,3,4) se obţine astfel:

Succesiunile (3,1,2,4) şi (4,2,1,3) sunt permutări nestivuite.
În faza a doua, unele bileţele au fost scurtate din stânga şi/sau din dreapta. Astfel, din permutarea stivuită (2,1,3,4) se pot obţine succesiuni de lungime mai mică: (1,3,4), (2,1,3), (1,3), (3) etc.
Orice succesiune care aparţine unei permutări stivuite, poate aparţine şi unei permutări nestivuite. De exemplu, succesiunea (2,1,3) aparţine atât permutării stivuite (2,1,3,4), cât şi permutării nestivuite (4,2,1,3).
Dându-se mai multe succesiuni de numere naturale distincte, determinaţi, pentru fiecare dintre acestea, dacă aparţin cel puţin unei permutări stivuite.
| Problema | Stiva1 | Operații I/O |
stiva1.in/stiva1.out
|
|---|---|---|---|
| Limita timp | 0.1 secunde | Limita memorie |
Total: 64 MB
/
Stivă 8 MB
|
| Id soluție | #35980422 | Utilizator | |
| Fișier | stiva1.cpp | Dimensiune | 2.02 KB |
| Data încărcării | 30 Martie 2022, 12:40 | Scor/rezultat | 40 puncte |
stiva1.cpp: In function 'int main()': stiva1.cpp:37:37: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result] freopen("stiva1.in", "r", stdin); ^ stiva1.cpp:38:39: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result] freopen("stiva1.out", "w", stdout); ^
| Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
|---|---|---|---|---|---|---|
| 1 | 0 secunde | Raspuns gresit. | 5 | 0 | ||
| 2 | 0 secunde | Raspuns gresit. | 5 | 0 | ||
| 3 | 0 secunde | Raspuns gresit. | 5 | 0 | ||
| 4 | 0.004 secunde | OK. | 5 | 5 | ||
| 5 | 0.084 secunde | Raspuns gresit. | 5 | 0 | ||
| 6 | 0 secunde | OK. | 5 | 5 | ||
| 7 | 0 secunde | OK. | 5 | 5 | ||
| 8 | 0 secunde | Raspuns gresit. | 5 | 0 | ||
| 9 | 0.004 secunde | Raspuns gresit. | 5 | 0 | ||
| 10 | 0.04 secunde | Raspuns gresit. | 5 | 0 | ||
| 11 | 0 secunde | OK. | 5 | 5 | ||
| 12 | 0 secunde | OK. | 5 | 5 | ||
| 13 | 0 secunde | Raspuns gresit. | 5 | 0 | ||
| 14 | 0 secunde | Raspuns gresit. | 5 | 0 | ||
| 15 | 0.052 secunde | Raspuns gresit. | 5 | 0 | ||
| 16 | 0 secunde | OK. | 5 | 5 | ||
| 17 | 0 secunde | OK. | 5 | 5 | ||
| 18 | 0 secunde | OK. | 5 | 5 | ||
| 19 | 0.004 secunde | Raspuns gresit. | 5 | 0 | ||
| 20 | 0.032 secunde | Raspuns gresit. | 5 | 0 | ||
| Punctaj total | 40 | |||||
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Stiva1 face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:
Suma punctajelor acordate pe testele utilizate pentru verificare este 100. Astfel, soluția ta poate obține cel mult 100 de puncte, caz în care se poate considera corectă.