#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 | #49988913 | Utilizator | |
Fișier | perioade.cpp | Dimensiune | 2.57 KB |
Data încărcării | 22 Martie 2024, 11:34 | Scor / rezultat | 100 puncte |
perioade.cpp: In function 'int main()': perioade.cpp:92:42: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result] freopen("perioade.in", "r", stdin); ^ perioade.cpp:93:44: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result] freopen("perioade.out", "w", stdout); ^
Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
---|---|---|---|---|---|---|
1 | 0.02 secunde | OK. | 10 | 10 | ||
2 | 0.008 secunde | OK. | 10 | 10 | ||
3 | 0.008 secunde | OK. | 10 | 10 | ||
4 | 0.008 secunde | OK. | 10 | 10 | ||
5 | 0.008 secunde | OK. | 20 | 20 | ||
6 | 0.308 secunde | OK. | 20 | 20 | ||
7 | 0.52 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ă.