scuderia

Time limit: 0.2s Memory limit: 5MB Input: scuderia.in Output: scuderia.out

Anul ăsta e anul nostru...

Spun fanii Scuderiei - cea mai iubită echipă de Formula 10 - deja de prea mulți ani. Dar anul acesta chiar e diferit, deoarece se schimbă regulamentul tehnic, iar cei doi piloți ai echipei, Carol și Luis, sunt motivați să aducă înapoi gloria demult uitată a echipei.

Înainte de prima cursă din sezon, Marele Premiu al orașului Necleab, Carol și Luis pot să facă mașina mai rapidă folosindu-se de un șir de nn numere întregi, indexat de la 00 la n1n - 1, și patru numere: kk, pp, qq și rr.

Carol selectează o mulțime care conține indicii unei subsecvențe de lungime qkq \cdot k din șirul de nn numere. Indicele de start al acestei subsecvențe, notat cu ii, trebuie să îndeplinească condiția i % k=ri \text{ \% } k = r. Spre exemplu, pentru n=25n = 25, k=6k = 6, q=2q = 2 și r=3r = 3, o posibilă selecție a lui Carol este {3,4,5,6,7,8,9,10,11,12,13,14}\{3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14\}.

Luis selectează inițial o mulțime care conține indicii unei subsecvențe de lungime pp din șirul de nn numere. Ulterior, el adaugă indici astfel încât, la final, un indice ii aparține mulțimii dacă și numai dacă indicele i+ki + k aparține aceleiași mulțimi, ori de câte ori ambii indici sunt cuprinși între 00 și n1n - 1. Spre exemplu, pentru n=15n = 15, k=6k = 6, și p=3p = 3, dacă Luis selectează inițial mulțimea cu indicii {1,2,3}\{1, 2, 3\}, la final aceasta va fi {1,2,3,7,8,9,13,14}\{1, 2, 3, 7, 8, 9, 13, 14\}.

După alegerea mulțimilor, Carol și Luis le reunesc. Dacă un indice se află în ambele mulțimi, acesta va fi luat o singură dată în considerare. Viteza mașinii crește cu o valoare egală cu suma numerelor din șirul inițial care au indicii în mulțimea finală.

Cerință

Pentru ca în sfârșit anul ăsta să fie anul lor, piloții vor să facă mașina cât mai rapidă. Urmând regulile descrise mai sus, care este viteza maximă cu care piloții pot îmbunătăți mașina?

Date de intrare

Fișierul de intrare scuderia.in conține pe prima linie 5 numere întregi nn, kk, pp, qq și rr, cu semnificația din enunț. A doua linie conține cele nn elemente ale șirului.

Date de ieșire

Pe prima linie a fișierului de ieșire scuderia.out se va afișa un singur număr, reprezentând valoarea maximă pe care o pot obține piloții.

Restricții și precizări

  • 1n1 000 0001 \leq n \leq 1 \ 000 \ 000
  • 1k<100 0001 \leq k < 100 \ 000
  • k<nk < n
  • 0p,qn0 \leq p, q \leq n
  • 0r<k0 \leq r < k
  • 0r+qk<n0 \leq r + q \cdot k < n
  • Numerele din șir se află în intervalul [1 000,1 000][-1 \ 000, 1 \ 000]
  • O subsecvență de lungime ll, 0ln0 \leq l \leq n, a șirului este un șir format din ll elemente aflate pe poziții consecutive în șirul inițial.
  • Operatorul % reprezintă operația modulo, adică restul împărțirii a două numere întregi.
  • Rezultatul final poate fi și un număr negativ. Asta înseamnă că mașina devine mai înceată decât era inițial, un lucru pe care scuderia reușește cumva să-l facă uneori...
  • Atenție la limita de memorie!
# Punctaj Restricții
1 10 k=1k = 1
2 8 p=0,1n1 000p = 0, 1 \leq n \leq 1 \ 000
3 15 p=0p = 0
4 13 q=0,p=1q = 0, p = 1
5 7 q=0,1k1 000q = 0, 1 \leq k \leq 1 \ 000
6 12 q=0q = 0
7 7 q=1,p=1q = 1, p = 1
8 5 r=0,1n100r = 0, 1 \leq n \leq 100
9 7 r=0r = 0
10 6 1n1001 \leq n \leq 100
11 10 Fără restricții suplimentare

Exemplul 1

scuderia.in

9 3 0 1 0
10 6 7 5 20 5 1 8 3

scuderia.out

30

Explicație

k=3k = 3, p=0p = 0, q=1q = 1, r=0r = 0. Deoarece p=0p = 0, Luis nu va selecta niciun indice, deci doar Carol îmbunătățește viteza mașinii, alegând o subsecvență de lungime 31=33 \cdot 1 = 3. Aceasta conține indicii 33, 44, și 55. 3 % 3=03 \text{ \% } 3 = 0, și obține suma 5+20+5=305 + 20 + 5 = 30, care este maximă.

Exemplul 2

scuderia.in

9 3 2 0 0
10 6 7 5 20 5 1 8 3

scuderia.out

50

Explicație

k=3k = 3, p=2p = 2, q=0q = 0, r=0r = 0. Deoarece q=0q = 0, Carol nu va selecta niciun indice, deci doar Luis îmbunătățește viteza mașinii. Inițial, alege p=2p = 2 indici: {0,1}\{0, 1\}, după care adaugă alți indici, ajungând la final cu mulțimea {0,1,3,4,6,7}\{0, 1, 3, 4, 6, 7\}. Viteza va crește cu 10+6+5+20+1+8=5010 + 6 + 5 + 20 + 1 + 8 = 50, care este maximă.

Exemplul 3

scuderia.in

9 3 2 1 0
10 6 7 5 20 5 1 8 3

scuderia.out

59

Explicație

k=3k = 3, p=2p = 2, q=1q = 1, r=0r = 0, deci ambii piloți îmbunătățesc viteza mașinii. Mulțimea aleasă de Carol este {0,1,2}\{0, 1, 2\}, iar mulțimea finală a lui Luis este {1,2,4,5,7,8}\{1, 2, 4, 5, 7, 8\}. În total, viteza crește cu 10+6+7+20+5+8+3=5910 + 6 + 7 + 20 + 5 + 8 + 3 = 59, care este maximă.

Exemplul 4

scuderia.in

9 3 2 1 1
-3 -2 -9 -47 -4 -5 -92 -8 -17

scuderia.out

-92

Explicație

k=3k = 3, p=2p = 2, q=1q = 1, r=1r = 1, deci ambii piloți îmbunătățesc viteza mașinii. Mulțimea aleasă de Carol este {1,2,3}\{1, 2, 3\}, iar mulțimea finală a lui Luis este {1,2,4,5,7,8}\{1, 2, 4, 5, 7, 8\}. În total, viteza crește cu 294745817=92-2 - 9 - 47 - 4 - 5 - 8 - 17 = -92, care este maximă. În această situație, mașina devine mai înceată.

Log in or sign up to be able to send submissions!