#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 | #50404325 | Utilizator | |
Fișier | perioade.cpp | Dimensiune | 1.34 KB |
Data încărcării | 08 Aprilie 2024, 13:51 | Scor / rezultat | Eroare de compilare |
perioade.cpp: In member function 'void arboreDeIntervale::build(int, int, int)': perioade.cpp:49:27: error: cannot convert 'std::unordered_map<int, int>' to 'int' in assignment a[nod].normal = pozToVal ^ perioade.cpp:50:5: error: expected ';' before '}' token } ^ perioade.cpp: In function 'int main()': perioade.cpp:61:23: error: invalid types 'char[int]' for array subscript for(int i = 0; s[i] != '\0'; ++i) ^ perioade.cpp:62:33: error: invalid types 'char[int]' for array subscript pozToVal[i+1] = (int)s[i] - 'a'; ^ perioade.cpp:63:29: error: invalid types 'char[int]' for array subscript pozToVal[0] = (int)s[n-1] - 'a'; ^
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ă.