Diferente pentru problema/euro intre reviziile #1 si #8

Nu exista diferente intre titluri.

Diferente intre continut:

==Include(page="template/taskheader" task_id="euro")==
 
==Include(page="template/raw")==
 
Link: [1]File-List
 
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.
 
h2. Cerinta
 
Obiectivul vostru este sa maximizati suma de lei pe care o veti avea la sfarsitul zilei N.
 
h2. 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.
 
h2. Date de Iesire
 
Fisierul de iesire euro.out contine un singur numar ce reprezinta suma maxima de lei pe care o puteti obtine.
 
h2. Restrictii si precizari
 
&#159; 1 <= N <= 34567
 
&#159; 0 <= T <= 34567
 
&#159; 80% dintre teste vor avea T <= 255
 
&#159; numarul de euro pe care il veti primii in fiecare zi este un intreg cuprins in intervalul [-1000, 1000]
 
&#159; este permis sa convertiti doar euro in lei, si nu lei in euro
 
&#159; 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
 
h2. Exemplu
 
euro.in euro.out Explicatii
7 1 17 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-16+34.
 
-10 3 -2 4 -6 2 3
 
==Include(page="template/taskheader" task_id="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.
 
h2. Cerinta
 
Obiectivul vostru este sa maximizati suma de lei pe care o veti avea la sfarsitul zilei {$N$}.
 
h2. 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.
 
h2. Date de Iesire
 
Fisierul de iesire $euro.out$ contine un singur numar ce reprezinta suma maxima de lei pe care o puteti obtine.
 
h2. Restrictii si precizari
 
* $1 &le; N &le; 34567$
* $0 &le; T &le; 34567$
* $80%$ dintre teste vor avea $T &le; 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
 
h2. Exemplu
 
table(example). |_. euro.in |_. euro.out |
| 7 1
-10 3 -2 4 -6 2 3
| 17 |
 
h3. 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$}.
 
==Include(page="template/taskfooter" task_id="euro")==
References
Visible links
1. file:///home/eval/eval/www/infoarena/docs/arhiva/euro/enunt_files/filelist.xml
==Include(page="template/taskfooter" task_id="euro")==

Nu exista diferente intre securitate.

Diferente intre topic forum:

 
876