#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 | #54848119 | Utilizator | |
Fișier | perioade.cpp | Dimensiune | 2.23 KB |
Data încărcării | 10 Decembrie 2024, 11:25 | Scor / rezultat | 10 puncte |
perioade.cpp: In function 'void build(int, int, int, int)': perioade.cpp:29:21: warning: suggest parentheses around '+' inside '>>' [-Wparentheses] int mid = l + r >> 1; ^ perioade.cpp: In function 'void update(int, int, int, int, int, int)': perioade.cpp:41:21: warning: suggest parentheses around '+' inside '>>' [-Wparentheses] int mid = l + r >> 1; ^ perioade.cpp: In function 'void query(int, int, int, int, int, int)': perioade.cpp:56:17: warning: suggest parentheses around '+' inside '>>' [-Wparentheses] int mid = l + r >> 1; ^ perioade.cpp: In function 'int main()': perioade.cpp:89:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int j=0;j<s.size();j++) ^
Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
---|---|---|---|---|---|---|
1 | 0.008 secunde | OK. | 10 | 10 | ||
2 | 0.008 secunde | Raspuns gresit. | 10 | 0 | ||
3 | 0.008 secunde | Raspuns gresit. | 10 | 0 | ||
4 | 0.008 secunde | Raspuns gresit. | 10 | 0 | ||
5 | 0.008 secunde | Raspuns gresit. | 20 | 0 | ||
6 | 0.056 secunde | Caught fatal signal 11 | 20 | 0 | ||
7 | 0.064 secunde | Caught fatal signal 11 | 20 | 0 | ||
Punctaj total | 10 |
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ă.