Aurel s-a pregătit pentru ninsoare, dar zăpada care s-a așezat aseară tot i-a dat bătăi de cap. Aleea pe care trebuie să o deszăpezească Aurel este formată din dale pătrate, pozițiile acestora fiind numerotate în ordine, de la stânga la dreapta, de la la . Fiind un tip meticulos, înainte de a se apuca de treabă, Aurel a determinat cantitatea de zăpadă (exprimată în grame) care s-a așezat pe fiecare dintre cele dale și a notat cu cantitatea de zăpadă existentă pe dala (). Pentru a curăța aleea, el trebuie să mute toată zăpada de pe alee, în stânga sau în dreapta acesteia. Pentru simplitate, vom considera că zona din stânga aleii are poziția , iar zona din dreapta aleii are poziția .
Pentru deszăpezire, Aurel a cumpărat de lopeți speciale, numerotate de la la . Cu lopata () Aurel poate muta cel mult grame de zăpadă de pe dala pe care se află aceasta pe o poziție alăturată, la stânga sau la dreapta, deci de pe poziția () pe poziția sau pe poziția , pentru această acțiune consumând calorii.
Pentru a fi eficient, Aurel a decis să împartă aleea în două zone. Prima zonă conține toate dalele situate pe poziții mai mici sau egale cu , iar a doua zonă conține toate dalele de poziții strict mai mari decât . El va folosi lopețile pentru a muta toată zăpada din prima zonă pe poziția și toată zăpada din a doua zonă pe poziția .
Cerință
Cunoscând numărul de dale și zăpada acumulată pe fiecare dală, scrieți un program care să rezolve următoarele cerințe:
- cunoscând valoarea , determinați numărul total minim de calorii consumate de Aurel pentru a deszăpezi aleea;
- determinați valoarea pentru care numărul total de calorii consumate de Aurel pentru deszăpezirea aleii este minim; dacă există mai multe astfel de valori, să se determine cea mai mică dintre acestea.
Date de intrare
Fișierul de intrare zapada.in conține pe prima linie numărul natural reprezentând cerința care trebuie rezolvată ( sau ). Pe a doua linie se află numărul natural reprezentând numărul de dale de pe alee. Pe a treia linie se află numere naturale separate prin câte-un spațiu , reprezentând cantitatea de zăpadă existentă pe fiecare dală. Dacă , atunci pe cea de-a patra linie se află numărul natural .
Date de ieșire
Fișierul de ieșire zapada.out conține o singură linie pe care este scris răspunsul la cerința .
Restricții și precizări
- , pentru orice
| # | Punctaj | Restricții |
|---|---|---|
| 1 | 23 | |
| 2 | 22 | , |
| 3 | 37 | , |
| 4 | 18 | , fără restricții suplimentare |
Exemplul 1
zapada.in
1
4
1 3 1 3
2
zapada.out
10
Explicație
. Există dale pe alee, iar este egal cu , deci prima zonă este formată din dalele de pe pozițiile și , iar a doua zonă din dalele de pe pozițiile și . Pentru un consum minim de calorii, Aurel poate proceda astfel, pentru fiecare pas fiind indicată poziția de pe care este mutată zăpada, ce cantitate se mută și poziția pe care este mutată:
cu lopata : ; consum
cu lopata : ; consum
cu lopata : ; consum
cu lopata : ; consum
cu lopata : ; consum
Calorii consumate în total
Exemplul 2
zapada.in
2
4
1 4 4 1
zapada.out
1
Explicație
. Dacă alegem putem deszăpezi aleea cu un consum total minim de calorii astfel:
cu lopata : ; consum
cu lopata : ; consum
cu lopata : ; consum
cu lopata : ; consum
Dacă alegem obținem același consum minim, dar este mai mic decât .
Dacă alegem obținem un consum mai mare ().
Exemplul 3
zapada.in
2
10
5 3 2 2 7 3 5 5 3 5
zapada.out
2
Explicație
. Consumul total minim de calorii este și se obține pentru și ( fiind minim).
Orice altă alegere pentru conduce la un consum de calorii mai mare.