Detalii evaluare #54496766

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 #54496766 Utilizator Zgorcea Mihai-Alexandru (Warriore)
Fișier arh.cpp Dimensiune 4.47 KB
Data încărcării 30 Noiembrie 2024, 11:39 Scor / rezultat 80 puncte

Evaluare


Mesaj compilare

arh.cpp: In function 'void copiator_poz(char*, int, int)':
arh.cpp:40:24: warning: converting to non-pointer type 'char' from NULL [-Wconversion-null]
     cuvant[sfar_poz+1] =NULL;

                        ^
arh.cpp: In function 'int variante(int&, char)':
arh.cpp:71:28: warning: converting to non-pointer type 'char' from NULL [-Wconversion-null]
                 literas[1] = NULL;

                            ^
arh.cpp: In function 'void solver(int&, int)':
arh.cpp:102:35: warning: NULL used in arithmetic [-Wpointer-arith]
         while(propo_ini[sfarsit]!=NULL){

                                   ^
arh.cpp:120:26: warning: converting to non-pointer type 'char' from NULL [-Wconversion-null]
         numar[cnt_numar] = NULL;

                          ^
arh.cpp:124:20: warning: converting to non-pointer type 'char' from NULL [-Wconversion-null]
         literas[1] = NULL;

                    ^
arh.cpp:123:14: warning: variable 'literas' set but not used [-Wunused-but-set-variable]
         char literas[2];

              ^
arh.cpp:95:9: warning: unused variable 'start' [-Wunused-variable]
     int start = sfarsit;

         ^
arh.cpp: In function 'int main()':
arh.cpp:177:16: warning: converting to non-pointer type 'char' from NULL [-Wconversion-null]
     raspuns[0] = NULL;

                ^

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 Depășit Limita de timp depășită 5 0
7 Depășit Limita de timp depășită 5 0
8 0 secunde Corect! 5 5
9 0.004 secunde Corect! 5 5
10 0 secunde Corect! 5 5
11 Depășit Limita de timp depășită 5 0
12 0.004 secunde Corect! 5 5
13 0.016 secunde Corect! 5 5
14 0.088 secunde Corect! 5 5
15 Depășit Limita de timp depășită 5 0
16 0.02 secunde Corect! 5 5
17 0.048 secunde Corect! 5 5
18 0 secunde Corect! 5 5 Exemplu
19 0 secunde Corect! 5 5 Exemplu
Punctaj total 80

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