#1133
Charlie
Charlie a decis să se joace cu literele dintr-un șir de caractere, șir ce conține doar literele mici ale alfabetului englez ’a’…’z’
. Jocul constă în a elimina litere din șir după următoarea regulă: fie L1
, L2
, L3
trei litere aflate pe poziții consecutive în șir, atunci litera L2
poate fi eliminată dacă și numai dacă este strict mai mică lexicografic decât literele L1
și L3
.
Pentru a face jocul mai interesant, Charlie atașează eliminării literei L2
un cost egal cu valoarea maximă dintre ō(L1)
și ō(L3)
, unde prin ō(litera)
înțelegem numărul de ordine al literei respective în alfabet (ō(’a’)=1
, ō(’b’)=2
,…, ō(’z’)=26
). Charlie aplică în mod repetat procedeul de eliminare și calculează suma costurilor eliminărilor efectuate.
Fiind dat un șir de caractere să se determine:
a) Lungimea maximă a unei secvențe de litere alternante, adică o secvență pentru care literele aflate pe poziții consecutive sunt de forma: L
i
> L
i+1
< L
i+2
> L
i+3
< L
i+4
> … < L
j
.
b) Suma maximă pe care o poate obține Charlie aplicând în mod repetat procedeul de eliminare a literelor, precum și șirul obținut în final.
Problema | Charlie | Operații I/O |
charlie.in /charlie.out
|
---|---|---|---|
Limita timp | 0.5 secunde | Limita memorie |
Total: 4 MB
/
Stivă 2 MB
|
Id soluție | #16337448 | Utilizator | |
Fișier | charlie.cpp | Dimensiune | 1.27 KB |
Data încărcării | 14 Iulie 2019, 09:56 | Scor / rezultat | 25 puncte |
charlie.cpp: In function 'void Cerinta1()': charlie.cpp:26:17: warning: array subscript has type 'char' [-Wchar-subscripts] if(val[s[i]]<val[s[i-1]] && val[s[i]]<val[s[i+1]]) ^ charlie.cpp:26:29: warning: array subscript has type 'char' [-Wchar-subscripts] if(val[s[i]]<val[s[i-1]] && val[s[i]]<val[s[i+1]]) ^ charlie.cpp:26:42: warning: array subscript has type 'char' [-Wchar-subscripts] if(val[s[i]]<val[s[i-1]] && val[s[i]]<val[s[i+1]]) ^ charlie.cpp:26:54: warning: array subscript has type 'char' [-Wchar-subscripts] if(val[s[i]]<val[s[i-1]] && val[s[i]]<val[s[i+1]]) ^ charlie.cpp: In function 'void Cerinta2()': charlie.cpp:40:37: warning: array subscript has type 'char' [-Wchar-subscripts] { if(top==0) S[++top]=val[s[i]]; /// ccdc ^ charlie.cpp:42:26: warning: array subscript has type 'char' [-Wchar-subscripts] { if(val[s[i]]<S[top] && val[s[i]]<val[s[i+1]] ) ^ charlie.cpp:42:46: warning: array subscript has type 'char' [-Wchar-subscripts] { if(val[s[i]]<S[top] && val[s[i]]<val[s[i+1]] ) ^ charlie.cpp:42:58: warning: array subscript has type 'char' [-Wchar-subscripts] { if(val[s[i]]<S[top] && val[s[i]]<val[s[i+1]] ) ^ charlie.cpp:43:42: warning: array subscript has type 'char' [-Wchar-subscripts] sum=sum+max(val[s[i+1]],S[top]); /// baaa ^ charlie.cpp:45:59: warning: array subscript has type 'char' [-Wchar-subscripts] { if(S[top]<S[top-1] && S[top]<val[s[i]]) ^ charlie.cpp:46:57: warning: array subscript has type 'char' [-Wchar-subscripts] { sum=sum+max(S[top-1],val[s[i]]); ^ charlie.cpp:47:43: warning: array subscript has type 'char' [-Wchar-subscripts] S[top]=val[s[i]]; ^ charlie.cpp:49:44: warning: array subscript has type 'char' [-Wchar-subscripts] else S[++top]=val[s[i]]; ^
Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
---|---|---|---|---|---|---|
0 | 0 secunde | OK. | 5 | 5 | ||
1 | 0 secunde | OK. | 5 | 5 | ||
2 | 0 secunde | OK. | 5 | 5 | ||
3 | 0 secunde | OK. | 5 | 5 | ||
4 | 0 secunde | OK. | 5 | 5 | ||
5 | 0 secunde | Raspuns gresit. | 4 | 0 | ||
6 | 0 secunde | Raspuns gresit. | 5 | 0 | ||
7 | 0 secunde | Raspuns gresit. | 5 | 0 | ||
8 | 0 secunde | Raspuns gresit. | 5 | 0 | ||
9 | 0 secunde | Raspuns gresit. | 5 | 0 | ||
10 | 0 secunde | Raspuns gresit. | 5 | 0 | ||
11 | 0 secunde | Raspuns gresit. | 5 | 0 | ||
12 | 0 secunde | Raspuns gresit. | 5 | 0 | ||
13 | 0 secunde | Raspuns gresit. | 5 | 0 | ||
14 | 0 secunde | Raspuns gresit. | 5 | 0 | ||
15 | 0 secunde | Raspuns gresit. | 5 | 0 | ||
16 | 0 secunde | Raspuns gresit. | 5 | 0 | ||
17 | 0 secunde | Raspuns gresit. | 6 | 0 | ||
18 | 0 secunde | Raspuns gresit. | 6 | 0 | ||
19 | 0 secunde | Raspuns gresit. | 4 | 0 | ||
Punctaj total | 25 |
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Charlie 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ă.