#4420
perioade
De ziua lui, Florin a primit un șir de caractere periodic și infinit. Perioada lui are lungime n
și conține doar litere mici ale alfabetului englez. Deoarece este curios, el vrea să își personalizeze șirul primit în diverse moduri. Pentru a face asta, el vă dă q
operații care se realizează pe șirul dat, operații de două tipuri, după cum urmează:
1 x y
: Litera de pe poziția x
devine egală cu y
, unde y
este o literă mică a alfabetului englez.2 a b c
: Florin vrea să afle câte litere egale cu c
există între pozițiile [a, b]
din șirul de caractere.Fiindcă nu vrea să strice periodicitatea șirului foarte mult, Florin vă garantează că pentru toate operațiile de actualizare, valorile pozițiilor modificate au în reprezentarea binară cel mult k
biți egali cu 1
. Scrieţi un program care, dându-se șirul de caractere și actualizările, răspunde la interogări.
Urmașii lui Moisil 2023, clasele XI-XII
Problema | perioade | Operații I/O |
perioade.in /perioade.out
|
---|---|---|---|
Limita timp | 2 secunde | Limita memorie |
Total: 256 MB
/
Stivă 64 MB
|
Id soluție | #52158276 | Utilizator | |
Fișier | perioade.cpp | Dimensiune | 3.32 KB |
Data încărcării | 21 Septembrie 2024, 11:04 | Scor / rezultat | 100 puncte |
perioade.cpp: In function 'int main()': perioade.cpp:146:27: warning: narrowing conversion of '(((int)y_) + -97)' from 'int' to 'short int' inside { } [-Wnarrowing] M[i]= {x_,0,y_-'a',i}; ^ perioade.cpp:154:28: warning: narrowing conversion of '(((int)tp) + -97)' from 'int' to 'short int' inside { } [-Wnarrowing] Q[i]= {st,dr,tp-'a',i}; ^ perioade.cpp: In function 'int get_modifier_poz(long long int)': perioade.cpp:108:1: warning: control reaches end of non-void function [-Wreturn-type] } ^
Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
---|---|---|---|---|---|---|
1 | 0.024 secunde | OK. | 10 | 10 | ||
2 | 0.02 secunde | OK. | 10 | 10 | ||
3 | 0.012 secunde | OK. | 10 | 10 | ||
4 | 0.012 secunde | OK. | 10 | 10 | ||
5 | 0.012 secunde | OK. | 20 | 20 | ||
6 | 0.236 secunde | OK. | 20 | 20 | ||
7 | 0.472 secunde | OK. | 20 | 20 | ||
Punctaj total | 100 |
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema perioade 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ă.