Fişierul intrare/ieşire:euro.in, euro.outSursăBOI 2003
AutorMihai Patrascu, Mugurel Ionut AndreicaAdăugată de
Timp execuţie pe test0.175 secLimită de memorie65536 kbytes
Scorul tăuN/ADificultatenormalnormalnormalnormalnormal

Vezi solutiile trimise | Statistici

Euro

Tocmai v-ati deschis un nou cont in banca unde veti primi sume de bani in euro. Cand v-ati deschis contul nu ati avut nici euro sau lei in posesie. Pe parcursul urmatoarelor N zile, veti primi diverse sume de euro; aceste sume pot fi negative, caz in care numarul total de euro din cont va scade. Este posibil ca uneori sa aveti o suma negativa de bani in contul vostru. La sfarsitul fiecarei zile banca va permite sa convertiti intreaga suma de euro pe care o aveti in cont in lei. Pretul unui euro variaza dupa urmatoarea regula: in timpul celei de-a K-a zile, un euro poate fi schimbat cu K lei. Banca va cere un comision de T lei pentru fiecare conversie. Astfel, daca la sfarsitul zilei K aveti S euro in cont si decideti sa ii convertiti veti primi S*K-T lei in schimbul lor (bineinteles, S poate fi negativ). La sfarsitul zilei N veti fi obligati sa va convertiti toata suma de bani din cont in lei, chiar daca aceasta este nepozitiva.

Cerinta

Obiectivul vostru este sa maximizati suma de lei pe care o veti avea la sfarsitul zilei N.

Date de Intrare

Prima linie a fisierului de intrare euro.in contine doua numere intregi, N si T, separate prin spatii. Urmatoarea linie contine N numere intregi ce reprezinta numarul de euro pe care il veti primi la inceputul fiecarei zile.

Date de Iesire

Fisierul de iesire euro.out contine un singur numar ce reprezinta suma maxima de lei pe care o puteti obtine.

Restrictii si precizari

  • 1 ≤ N ≤ 34567
  • 0 ≤ T ≤ 34567
  • 80% dintre teste vor avea T ≤ 255
  • numarul de euro pe care il veti primii in fiecare zi este un intreg cuprins in intervalul [-1000, 1000]
  • este permis sa convertiti doar euro in lei, si nu lei in euro
  • pentru rezultat este recomandata folosirea tipurilor int64 sau extended in Pascal si long long sau long double in C/C++ (depinzand ce preferati, numere reale sau intregi); se garanteaza ca rezultatul se incadreaza in aceste tipuri de date, dar s-ar putea sa fie prea mare pentru alte tipuri de date mai mici

Exemplu

euro.ineuro.out
7 1
-10 3 -2 4 -6 2 3
17

Explicatii

La sfarsitul primei zile veti schimba cei -10 ce i-ati primit pentru -11=-10*1-1 lei. A doua conversie are loc la sfarsitul zilei 5 cand veti avea -1 euro in cont (3-2+4-6). Suma de lei pe care o obtineti este -6=(3-2+4-6)*5-1. Veti efectua ultima conversie la sfarsitul zilei 7, folosind ultimii 5 euro din cont (2+3). Suma de lei pe care o obtineti este 34=(2+3)*7-1. Suma finala de lei pe care o obtineti este 17=-11-6+34.

Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?

remote content