Detalii evaluare #42777645

Rezumat problemă

#3444 Arh

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.

  1. O secvență a lui 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.
  2. O secvență a lui 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ă abccba
  3. O secvență a lui S 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.

Detalii

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 #42777645 Utilizator Costache Radu - Mihai (radu_msk)
Fișier arh.cpp Dimensiune 2.12 KB
Data încărcării 16 Martie 2023, 19:49 Scor / rezultat 100 puncte

Evaluare


Mesaj compilare

arh.cpp: In function 'int main()':
arh.cpp:18:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int i = 0; i < s.size(); ++i) {

                                ^
arh.cpp: In function 'std::string rotunda(int&)':
arh.cpp:44:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (; i < s.size(); ++i) {

                       ^
arh.cpp: In function 'std::string patrata(int&)':
arh.cpp:70:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for (; i < s.size(); ++i) {

                           ^
arh.cpp:88:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for (; i < s.size(); ++i) {

                           ^

Rezultat evaluare

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 Corect! 5 5
9 0 secunde Corect! 5 5
10 0 secunde Corect! 5 5
11 0 secunde Corect! 5 5
12 0 secunde Corect! 5 5
13 0 secunde Corect! 5 5
14 0 secunde Corect! 5 5
15 0 secunde Corect! 5 5
16 0 secunde Corect! 5 5
17 0 secunde Corect! 5 5
18 0 secunde Corect! 5 5 Exemplu
19 0 secunde Corect! 5 5 Exemplu
Punctaj total 100

Cum funcționează evaluarea?

www.pbinfo.ro permite evaluarea a două tipuri de probleme:

  • probleme la care rezolvarea presupune scrierea unui program complet
  • probleme la care rezolvarea presupune scrierea unei secvențe de program - câteva instrucțiuni, o listă de declarații, una sau mai multe funcții, etc.

Problema Arh face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:

  • Programul sursă este compilat folosind compilatorul corespunzător. Dacă în urma compilării se obțin erori sau avertismente, acestea sunt afișate în această pagină.
  • Dacă programul a fost compilat, executabilul obținut va fi rulat, furnizându-i-se unul sau mai multe seturi de date de intrare, în concordanță cu restricțiile specifice problemei. Pentru fiecare set de date se obține un anumit punctaj, în raport cu corectitudinea soluției tale.

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