Atenţie! Aceasta este o versiune veche a paginii, scrisă la 2020-12-05 16:21:05.
Revizia anterioară   Revizia următoare  

 

Fişierul intrare/ieşire:peru.in, peru.outSursăRMI 2020 Ziua 1
AutorAlexandru PetrescuAdăugată demihai50000Mihai-Cristian Popescu mihai50000
Timp execuţie pe test0.55 secLimită de memorie256000 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise | Statistici

Peru

Azi dimineaţă, Roxy a găsit N gândaci pe birou. Ei sunt numerotaţi de la 0 la N - 1 şi fiecare gândac i are puterea Si. Roxy vrea să strivească gândacii pentru a-şi, face tema la matematică. Pentru asta, a cumpărat o mănuşă specială pe care o poate folosi pentru a lovi o subsecvenţă continuă de K gândaci. Dacă Roxy face un efort E, atunci acei gândaci a căror putere Si este mai mică sau egală cu E vor fi strivitţi, în timp ce toţi ceilalţi vor rămâne nevătămaţi. Gândacii striviţi îşi menţin poziţiile pe birou. Roxy poate folosi mănuşa de câte ori doreşte.
Roxy vrea să ştie dacă tu poţi calcula efortul minim necesar pentru a strivi primii i gândaci pentru fiecare 1 ≤ i ≤ N. Pentru că sunt prea multe numere, Roxy doreşte să-i dai rezultatul expresiei următoare: X0 * 23N-1 + X1 * 23N-2 + ... + XN-1 modulo 109 + 7, unde Xi reprezintă efortul minim total pentru a strivi primii i + 1 gândaci.

Date de intrare

Fişierul de intrare peru.in contine pe prima linie T, numarul de gandaci.
Urmatoarele 2 * T linii contin descrierea testelor, cate doua linii pentru fiecare test:
Prima linie contine N si K, iar a doua linie contine vectorul R de lungime N.

Date de ieşire

În fişierul de ieşire peru.out contine T linii, pe linia i aflandu-se raspunsul pentru al i-lea test.

daca sirul e d1, d2, ..., dn, raspunsul se calculeaza asa:
int ans = 0; for (int i = 1; i <= n; i++) ans = (23LL * ans + di) % 1000000007.

Restricţii

  • 1 ≤ N ≤ 2500000
  • 1 ≤ K ≤ N
  • 1 ≤ Si ≤ 2*109
  • Pentru 20 puncte, 1 ≤ N ≤ 2000
  • Pentru alte 30 puncte, 1 ≤ N ≤ 400000

Exemplu

peru.inperu.outExplicatie
5
7 4
6 6 12 12 8 1 4
7 3
1 1 2 3 2 1 1
5 3
2 3 2 3 2
5 3
1 3 1 3 1
16 7
1 2 3 4 5 6 7 14 12 10 8 6 4 7 1 9
930347444
155082818
597891
318026
731832314
6 6 12 12 18 18 20
1 1 2 4 4 5 5
2 3 3 5 6
1 3 3 4 5
1 2 3 4 5 6 7 15 16 17 18 19 20 21 22 26
Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?