#1729
Îl cunoașteți pe Dorel cel ”priceput” la toate. Acesta și-a propus să “strice” armonia unui șir S format din N caractere litere mici ale alfabetului englez, S=(S[1],S[2],…,S[N]).
El alege la întâmplare un caracter din șir, caracter aflat pe poziția k (1≤k≤N) și caută în stânga lui k primul caracter mai mare sau egal cu S[k], fie acesta aflat pe poziția i, S[k]≤S[i]. Dacă acesta nu există, i=1. Această alegere nu este suficientă. Dorel caută în dreapta lui k primul caracter mai mic sau egal cu S[k], fie acesta pe poziția j, S[j]≤S[k]. Dacă acesta nu există, j=N. Extrage din șirul S subșirul astfel delimitat. Ca urmare a alegerii făcute, Dorel obține două subșiruri:
X=(S[1],S[2],…,S[i-1],S[j+1],S[j+2],…,S[N])Y=(S[i],S[i+1],…,S[j])Cunoscând șirul S, ajutați-l pe Dorel să răspundă la Q întrebări de forma:
k din șirul S să se determine lungimea maximă a unei subsecvențe palindromice comune șirurilor X și Y.Lot Juniori Magurele, 2016
| Problema | Dorel | Operații I/O |
dorel.in/dorel.out
|
|---|---|---|---|
| Limita timp | 0.5 secunde | Limita memorie |
Total: 128 MB
/
Stivă 8 MB
|
| Id soluție | #64325783 | Utilizator | |
| Fișier | dorel.cpp | Dimensiune | 3.43 KB |
| Data încărcării | 29 Aprilie 2026, 18:44 | Scor/rezultat | 100 puncte |
dorel.cpp: In function ‘int main()’: dorel.cpp:101:12: warning: ignoring return value of ‘FILE* freopen(const char*, const char*, FILE*)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 101 | freopen("dorel.in", "r", stdin); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ dorel.cpp:102:12: warning: ignoring return value of ‘FILE* freopen(const char*, const char*, FILE*)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 102 | freopen("dorel.out", "w", stdout); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
| Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
|---|---|---|---|---|---|---|
| 0 | 0.002 secunde | OK. | 5 | 5 | ||
| 1 | 0.002 secunde | OK. | 5 | 5 | ||
| 2 | 0.003 secunde | OK. | 5 | 5 | ||
| 3 | 0.039 secunde | OK. | 5 | 5 | ||
| 4 | 0.039 secunde | OK. | 5 | 5 | ||
| 5 | 0.043 secunde | OK. | 5 | 5 | ||
| 6 | 0.004 secunde | OK. | 5 | 5 | ||
| 7 | 0.023 secunde | OK. | 5 | 5 | ||
| 8 | 0.023 secunde | OK. | 5 | 5 | ||
| 9 | 0.005 secunde | OK. | 5 | 5 | ||
| 10 | 0.007 secunde | OK. | 5 | 5 | ||
| 11 | 0.072 secunde | OK. | 5 | 5 | ||
| 12 | 0.066 secunde | OK. | 5 | 5 | ||
| 13 | 0.141 secunde | OK. | 5 | 5 | ||
| 14 | 0.121 secunde | OK. | 5 | 5 | ||
| 15 | 0.11 secunde | OK. | 5 | 5 | ||
| 16 | 0.151 secunde | OK. | 6 | 6 | ||
| 17 | 0.053 secunde | OK. | 7 | 7 | ||
| 18 | 0.054 secunde | OK. | 7 | 7 | ||
| Punctaj total | 100 | |||||
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Dorel 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ă.