#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.
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ă abccba
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
.
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 | #55082301 | Utilizator | |
Fișier | arh.cpp | Dimensiune | 2.01 KB |
Data încărcării | 21 Decembrie 2024, 12:45 | Scor / rezultat | Eroare de compilare |
arh.cpp: In function 'char siruri(int&, char)': arh.cpp:41:15: error: incompatible types in assignment of 'char' to 'char [20005]' s2=librarie(poz); ^ arh.cpp:48:12: error: invalid conversion from 'char*' to 'char' [-fpermissive] return sir; ^ arh.cpp:34:10: warning: address of local variable 'sir' returned [-Wreturn-local-addr] char sir[20005]; ^ arh.cpp: In function 'char transf1(int&, int)': arh.cpp:53:8: error: incompatible types in assignment of 'char' to 'char [20005]' sir=siruri( poz, ')'); ^ arh.cpp:59:12: error: invalid conversion from 'char*' to 'char' [-fpermissive] return sir; ^ arh.cpp:52:10: warning: address of local variable 'sir' returned [-Wreturn-local-addr] char sir[20005]; ^ arh.cpp: In function 'char transf2(int&)': arh.cpp:63:8: error: incompatible types in assignment of 'char' to 'char [20005]' sir=siruri(poz,']'); ^ arh.cpp:66:19: error: 'strrev' was not declared in this scope strrev(cop_sir); ^ arh.cpp:68:12: error: invalid conversion from 'char*' to 'char' [-fpermissive] return sir; ^ arh.cpp:62:10: warning: address of local variable 'sir' returned [-Wreturn-local-addr] char sir[20005]; ^ arh.cpp: In function 'char transf3(int&)': arh.cpp:72:8: error: incompatible types in assignment of 'char' to 'char [20005]' sir=siruri(poz,'*'); ^ arh.cpp:76:19: error: 'strrev' was not declared in this scope strrev(cop_sir); ^ arh.cpp:78:12: error: invalid conversion from 'char*' to 'char' [-fpermissive] return sir; ^ arh.cpp:71:10: warning: address of local variable 'sir' returned [-Wreturn-local-addr] char sir[20005]; ^ arh.cpp: In function 'int main()': arh.cpp:85:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int i=0;i<strlen(s));i++){ ^ arh.cpp:85:28: error: expected ';' before ')' token for(int i=0;i<strlen(s));i++){ ^ arh.cpp:85:30: error: 'i' was not declared in this scope for(int i=0;i<strlen(s));i++){ ^ arh.cpp:85:33: error: expected ';' before ')' token for(int i=0;i<strlen(s));i++){ ^ arh.cpp:84:10: warning: unused variable 't' [-Wunused-variable] char t; ^ arh.cpp:98:1: error: expected '}' at end of input } ^
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ă.