#2470
zuma
Se dă un șir de caractere de lungime N
format din litere mari ale alfabetului englez și un număr întreg K
. Asupra șirului se poate aplica în mod repetat următoarea operație: se alege o subsecvență de lungime cel putin K
având toate elementele egale și se elimină din șir. Evident că prima dată operația se aplică asupra șirului inițial și ulterior asupra șirului obținut din aplicarea operației anterioare. Operația se aplică până când șirul devine șirul vid (de lungime 0
) sau șirul nu mai conține subsecvențe de lungime cel puțin K
cu toate elemente egale.
Cunoscând N
, K
și șirul de caractere, să se determine care este lungimea minimă la care poate fi redus șirul după aplicarea operațiilor într-un mod convenabil.
ONI 2018 clasele XI-XII
Problema | zuma | Operații I/O |
zuma.in /zuma.out
|
---|---|---|---|
Limita timp | 1 secunde | Limita memorie |
Total: 128 MB
/
Stivă 32 MB
|
Id soluție | #55210586 | Utilizator | |
Fișier | zuma.cpp | Dimensiune | 3.50 KB |
Data încărcării | 06 Ianuarie 2025, 16:30 | Scor / rezultat | 100 puncte |
zuma.cpp: In function 'int main()': zuma.cpp:60:14: warning: suggest parentheses around '+' inside '>>' [-Wparentheses] cin >> a + 1; ^ zuma.cpp:92:25: warning: array subscript has type 'char' [-Wchar-subscripts] ind[c[t]].pb(t); ^ zuma.cpp:96:43: warning: array subscript has type 'char' [-Wchar-subscripts] for(int t = 0 ; t < ind[ch].size() ; t++) ^ zuma.cpp:96:50: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int t = 0 ; t < ind[ch].size() ; t++) ^ zuma.cpp:99:43: warning: array subscript has type 'char' [-Wchar-subscripts] for(int t = 0 ; t < ind[ch].size() ; t++) ^ zuma.cpp:99:50: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int t = 0 ; t < ind[ch].size() ; t++) ^ zuma.cpp:101:42: warning: array subscript has type 'char' [-Wchar-subscripts] dp[t] = ((i == ind[ch][t] || can[i][ind[ch][t] - 1]) ? fr[ind[ch][t]] : -1); ^ zuma.cpp:101:63: warning: array subscript has type 'char' [-Wchar-subscripts] dp[t] = ((i == ind[ch][t] || can[i][ind[ch][t] - 1]) ? fr[ind[ch][t]] : -1); ^ zuma.cpp:101:85: warning: array subscript has type 'char' [-Wchar-subscripts] dp[t] = ((i == ind[ch][t] || can[i][ind[ch][t] - 1]) ? fr[ind[ch][t]] : -1); ^ zuma.cpp:104:38: warning: array subscript has type 'char' [-Wchar-subscripts] if(can[ind[ch][r] + 1][ind[ch][t] - 1] == 1 && dp[r] != -1) ^ zuma.cpp:104:54: warning: array subscript has type 'char' [-Wchar-subscripts] if(can[ind[ch][r] + 1][ind[ch][t] - 1] == 1 && dp[r] != -1) ^ zuma.cpp:105:66: warning: array subscript has type 'char' [-Wchar-subscripts] dp[t] = max(dp[t] , dp[r] + fr[ind[ch][t]]); ^ zuma.cpp:107:60: warning: array subscript has type 'char' [-Wchar-subscripts] if(dp[t] != -1 && dp[t] >= k && (ind[ch][t] == j || can[ind[ch][t] + 1][j] == 1)) ^ zuma.cpp:107:83: warning: array subscript has type 'char' [-Wchar-subscripts] if(dp[t] != -1 && dp[t] >= k && (ind[ch][t] == j || can[ind[ch][t] + 1][j] == 1)) ^ zuma.cpp:57:10: warning: unused variable 'j' [-Wunused-variable] int i , j; ^ zuma.cpp:54:17: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result] FastIO , FILES; ^ zuma.cpp:54:17: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
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. | 3 | 3 | ||
4 | 0 secunde | OK. | 4 | 4 | ||
5 | 0.016 secunde | OK. | 4 | 4 | ||
6 | 0.096 secunde | OK. | 5 | 5 | ||
7 | 0 secunde | OK. | 5 | 5 | ||
8 | 0.008 secunde | OK. | 5 | 5 | ||
9 | 0 secunde | OK. | 5 | 5 | ||
10 | 0 secunde | OK. | 5 | 5 | ||
11 | 0 secunde | OK. | 5 | 5 | ||
12 | 0 secunde | OK. | 5 | 5 | ||
13 | 0 secunde | OK. | 5 | 5 | ||
14 | 0 secunde | OK. | 5 | 5 | ||
15 | 0 secunde | OK. | 5 | 5 | ||
16 | 0.104 secunde | OK. | 6 | 6 | ||
17 | 0.16 secunde | OK. | 6 | 6 | ||
18 | 0.008 secunde | OK. | 6 | 6 | ||
19 | 0.024 secunde | OK. | 6 | 6 | ||
Punctaj total | 100 |
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema zuma 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ă.