Pe Bursa de Valori din New York, cunoscută și sub numele de NYSE – New York Stock Exchange, există un singur tip de acțiune ce se poate tranzacționa. Se cunoaște prețul zilnic al unei acțiuni de acest tip pentru o perioadă de zile consecutive: reprezintă prețul unei acțiuni în ziua , exprimat în dolari.
William urmărește ce se întâmplă pe bursă, iar în fiecare zi poate tranzacționa, în total, cel mult acțiuni. Prin urmare, dacă în ziua vinde acțiuni (la prețul de dolari fiecare) și cumpără acțiuni (la prețul de dolari fiecare), trebuie respectate inegalitățile: , și . De asemenea, numerele și trebuie să fie numere naturale. Atenție: nu este nevoie ca William să dețină cel puțin o acțiune pentru a putea vinde una. De exemplu, este posibil ca prima tranzacție pe care William o efectuează să fie vânzarea unei (sau a mai multor) acțiuni.
Pentru orice , spunem că, la finalul zilei , William și-a închis pozițiile, dacă numărul de acțiuni cumpărate în primele zile este egal cu numărul de acțiuni vândute în primele zile (incluzând și eventualele tranzacții efectuate în ziua ). În urma unei serii de tranzacții, profituleste egal cu diferența dintre suma totală de dolari obținută din vânzarea acțiunilor și respectiv suma totală de dolari utilizată pentru cumpărarea acțiunilor. William are nevoie să răspundă, în ordine, la întrebări de forma: considerându-se o valoare naturală , să se determine indicele minim al unei zile unde , astfel încât după o serie de tranzacții în zilele , , . . . , , profitul obținut să fie de cel puțin dolari, iar el să își fi închis pozițiile la finalul zilei .
Dacă nu există niciun astfel de indice , atunci se consideră că . William știe încă de la începutul primei zile prețurile pentru întreaga perioadă de zile, astfel că își poate planifica optim tranzacțiile, în funcție de fiecare întrebare primită.
Cerință
Scrieți un program care, cunoscând , prețul zilnic al unei acțiuni pentru cele zile, precum și limitele zilnice de tranzacționare, răspunde corect la întrebări de forma descrisă. Cele întrebări sunt independente între ele, în sensul că pentru fiecare întrebare se poate alege o altă serie de tranzacții din care să rezulte cea mai mică valoare a lui , în cazul în care aceasta există (când ).
Date de intrare
Fișierul de intrare nyse.in
conține pe prima linie numărul natural . Pe următoarea linie se află numere naturale, reprezentând, în ordine: , , …, . Pe următoarea linie se află numere naturale, reprezentând, în ordine: , , …, . Pe următoarea linie se află numărul natural . Pe următoarele linii se află întrebările, câte o întrebare pe fiecare linie. O linie care reprezintă o întrebare conține un singur număr natural , cu semnificația de mai sus. Numerele aflate pe aceeași linie a fișierului de intrare sunt separate prin câte un spațiu.
Date de ieșire
Fișierul de ieșire nyse.out
conține linii. Pe cea de a -a linie se află răspunsul pentru cea de a -a întrebare descrisă în fișierul de intrare (unde ).
Restricții și precizări
- și .
- și , pentru fiecare : .
- , pentru fiecare dintre cele întrebări.
- În fiecare zi, William are și opțiunea de a nu face tranzacții.
# | Punctaj | Restricții |
---|---|---|
1 | 4 | |
2 | 12 | și |
3 | 17 | |
4 | 11 | max − min |
5 | 18 | |
6 | 14 | și |
7 | 24 | Fără restricții suplimentare |
Exemplul 1
nyse.in
2
10 5
3 3
1
14
nyse.out
2
Explicație
Se cunoaște prețul acțiunii pentru o perioadă de două zile consecutive . În prima zi, o acțiune valorează dolari, iar în cea de a doua zi, o acțiune valorează dolari. Atât în prima zi, cât și în cea de a doua, se pot tranzacționa cel mult trei acțiuni .
Avem de răspuns la o singură întrebare , pentru care .
În cadrul întrebării, William alege să vândă trei acțiuni (la prețul de dolari fiecare) în prima zi și apoi să cumpere trei acțiuni (la prețul de dolari fiecare) în a doua zi. Astfel, la finalul celei de a doua zile, numărul de acțiuni cumpărate este egal cu numărul de acțiuni vândute, adică trei, deci William și-a închis pozițiile.
Profitul maxim obținut după primele două zile este egal cu: dolari.
Exemplul 2
nyse.in
5
10 1 20 21 25
1 1 1 1 1
1
20
nyse.out
4
Explicație
Profitul maxim care se poate obține la finalul celei de a cincea zile este de de dolari.
Exemplul 3
nyse.in
5
10 12 5 113 343
1 2 3 2 1
4
0
1000
345
21
nyse.out
1
-1
5
4
Explicație
Profitul maxim care se poate obține la finalul celei de a cincea zile este de de dolari.