#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 | #55027938 | Utilizator | |
Fișier | arh.cpp | Dimensiune | 813 B |
Data încărcării | 17 Decembrie 2024, 11:34 | Scor / rezultat | Eroare de compilare |
arh.cpp:1:10: error: #include expects "FILENAME" or <FILENAME> #include fstream; ^ arh.cpp:4:14: error: variable 'std::ofstream cout' has initializer but incomplete type ofstream cout("arh.out"); ^ arh.cpp:5:13: error: variable 'std::ifstream cin' has initializer but incomplete type ifstream cin("arh.in"); ^ arh.cpp: In function 'std::string p2(int&)': arh.cpp:15:19: error: new declaration 'std::string p2(int&)' string p2(int &pos) ^ arh.cpp:10:5: error: ambiguates old declaration 'int p2(int&)' int p2(int &pos); ^ arh.cpp:17:26: error: invalid initialization of non-const reference of type 'int&' from an rvalue of type 'int' string total=p1(pos++); ^ arh.cpp:9:5: error: in passing argument 1 of 'int p1(int&)' int p1(int &pos); ^ arh.cpp:22:5: error: expected ';' before '}' token } ^ arh.cpp:23:1: warning: no return statement in function returning non-void [-Wreturn-type] } ^ arh.cpp: In function 'std::string p1(int&)': arh.cpp:24:19: error: new declaration 'std::string p1(int&)' string p1(int &pos) ^ arh.cpp:9:5: error: ambiguates old declaration 'int p1(int&)' int p1(int &pos); ^ arh.cpp:29:28: error: invalid conversion from 'char' to 'const char*' [-fpermissive] string temp=exp[pos]; ^ In file included from /usr/include/c++/4.8/string:52:0, from arh.cpp:2: /usr/include/c++/4.8/bits/basic_string.h:490:7: error: initializing argument 1 of 'std::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]' [-fpermissive] basic_string(const _CharT* __s, const _Alloc& __a = _Alloc()); ^ arh.cpp:42:1: warning: control reaches end of non-void function [-Wreturn-type] } ^
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ă.