#3444
Dexter și-a definit propriul algoritm de arhivare a șirului favorit T, șir format numai din litere mici ale alfabetului englez. Șirul arhivat, notat cu S, poate fi format din cifre, litere mici ale alfabetului englez, parantezele drepte '[' și ']' și parantezele rotunde '(' și ')', precum și caractere '*'.
Fixi, curios din fire, descoperă algoritmul și încearcă să dezarhiveze șirul S, prin efectuarea unor transformări repetate. O transformare poate fi de unul dintre cele 3 tipuri de mai jos, unde s-a notat cu C o secvență din S formată numai din litere.
S de forma n(C), unde n este numărul natural poziționat imediat înaintea parantezei rotunde, se transformă într-o secvență D obținută prin scrierea concatenată, de n ori, a șirului C. Exemplu: pentru secvența 10(ab) avem n=10 și se obține secvența D=abababababababababab.S de forma [*C] se transformă într-o secvență palindromică de lungime pară, obținută prin concatenarea secvenței C cu oglinditul lui C. Exemplu: din secvența [*abc] se obține secvența palindromică de lungime pară abccbaS de forma [C*] se transformă într-o secvență palindromică de lungime impară, obținută prin concatenarea secvenței C cu oglinditul lui C din care s-a eliminat primul caracter. Exemplu: din secvența [abc*] se obține secvența palindromică de lungime impară abcba.Un șir se consideră dezarhivat dacă este format numai din litere mici ale alfabetului englez.
Fiind dat șirul arhivat S să se determine numărul de transformări, de cele 3 tipuri de mai sus, realizate de Fixi în cadrul algoritmului de dezarhivare, precum și forma finală dezarhivată T a șirului S.
| Problema | Arh | Operații I/O |
arh.in/arh.out
|
|---|---|---|---|
| Limita timp | 0.5 secunde | Limita memorie |
Total: 64 MB
/
Stivă 16 MB
|
| Id soluție | #63388915 | Utilizator | |
| Fișier | arh.cpp | Dimensiune | 2.64 KB |
| Data încărcării | 01 Martie 2026, 14:23 | Scor/rezultat | 68 puncte |
arh.cpp: In function 'int task1(std::string)': arh.cpp:19:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for (int j=0;j<c.size();j++) ^ arh.cpp: In function 'int main()': arh.cpp:33:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for (i=0;i<fina.size();i++) ^
| Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
|---|---|---|---|---|---|---|
| 0 | 0 secunde | Corect! | 5 | 5 | ||
| 1 | 0 secunde | Corect! | 5 | 5 | ||
| 2 | 0 secunde | Corect! | 5 | 5 | ||
| 3 | 0 secunde | Corect! | 5 | 5 | ||
| 4 | 0 secunde | Corect! | 5 | 5 | ||
| 5 | 0 secunde | Corect! | 5 | 5 | ||
| 6 | 0 secunde | Corect! | 5 | 5 | ||
| 7 | 0 secunde | Corect! | 5 | 5 | ||
| 8 | 0 secunde | Partial corect! | 5 | 1 | ||
| 9 | 0 secunde | Partial corect! | 5 | 1 | ||
| 10 | 0 secunde | Partial corect! | 5 | 1 | ||
| 11 | 0.004 secunde | Corect! | 5 | 5 | ||
| 12 | 0 secunde | Partial corect! | 5 | 1 | ||
| 13 | 0.004 secunde | Partial corect! | 5 | 1 | ||
| 14 | 0.004 secunde | Partial corect! | 5 | 1 | ||
| 15 | 0.004 secunde | Corect! | 5 | 5 | ||
| 16 | 0.004 secunde | Partial corect! | 5 | 1 | ||
| 17 | 0.004 secunde | Partial corect! | 5 | 1 | ||
| 18 | 0 secunde | Corect! | 5 | 5 | Exemplu | |
| 19 | 0 secunde | Corect! | 5 | 5 | Exemplu | |
| Punctaj total | 68 | |||||
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Arh 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ă.