Revizia anterioară Revizia următoare
Fişierul intrare/ieşire: | addk.in, addk.out | Sursă | EJOI 2021, ziua 1 |
Autor | Mihai Bunget | Adăugată de | |
Timp execuţie pe test | 0.5 sec | Limită de memorie | 262144 kbytes |
Scorul tău | N/A | Dificultate | N/A |
Vezi solutiile trimise | Statistici
Addk
Se consideră un şir A cu N elemente numere naturale A 1,. . ., A N si un număr natural K. Se cere să se proceseze Q cerinţe de următoarele două tipuri:
- 1 i1 i2,..., iK: se permută circular la stânga elementele şirului Ai1,..., AiK . Astfel noile valor ale elementelor Ai1, Ai2 , ..., AiK-1 , AiK vor fi Ai2 , Ai2 , ..., AiK , Ai1 . Remarcaţi că i1, i2,... , ik sunt distincte şi nu neapărat in ordine crescătoare.
- 2 l r m: se cere calculul sumei elementelor tuturor subsecvenţelor continue de lungime m din secvenţa Al, Al+1,..., Ar-1, Ar-2. Remarcaţi că elementele care apar în mai multe secvenţe vor fi adunate de mai multe ori.
Date de intrare
Prima linie a fişierul de intrare addk.in conţine două numere întregi, N şi K. A doua linie conţine N numere întregi: elementele vectorului A. A treia linie conţine un întreg Q, numărul de cerinţe, şi apoi Q linii conţinând cerinţele, care pot fi din cele două tipuri descrise mai sus.
Date de ieşire
În fişierul de ieşire addk.out trebuie să conţină răspunsurile la cerinţele de tip 2, câte unul pe linie
Restricţii
- 0 ≤ Ai ≤ 10{6}
- 1 ≤ l ≤ r ≤ N
- 1 ≤ m ≤ r - l + 1
- În plus:
# | Punctaj | Restricţii |
---|---|---|
1 | 36 | 1 ≤ N,Q ≤ 10 000 , K = 1 |
2 | 56 | 10 001 ≤ N,Q ≤ 100 000, K = 1 |
3 | 8 | 1 ≤ N,Q ≤ 100 000, 2 ≤ K ≤ 10 |
Exemplu
addk.in | addk.out |
---|---|
This is some text written on multiple lines. | This is another text written on multiple lines. |
Explicaţie
...