Opracowanie GIE: Giełda

Transkrypt

Opracowanie GIE: Giełda
Opracowanie GIE: Giełda
Autor zadania: Joachim Jelisiejew.
Rozwiązanie
Transakcją nazwiemy kupno akcji i-tego dnia po kursie K i sprzedaż ich j-tego dnia (j ≥ i) po kursie S. Transakcja
jest opłacalna jeżeli S ≥ K.
Wyszukujemy najkorzystniejszą transakcję i, jeżeli jest ona opłacalna, lokujemy w niej cały majątek Bajtazara,
jeżeli nie – Bajtazar nie gra na giełdzie.
ௌ
ௌ
Najkorzystniejsza transakcja, to taka, że zysk – ݉ ∗ jest największy, innymi słowy
jest największe.
௄
௄
Uwaga: nie jest to równoważne temu, że S - K jest największe!
Najkorzystniejszą transakcję wyznaczamy liniowo przechodząc kursy kupna i sprzedaży. W każdym dniu
pamiętamy minimalny kurs kupna do tej pory i sprawdzamy, czy nie opłacałoby się nam kupić po kursie minimalnym i
sprzedać po kursie sprzedaży z danego dnia.
Uwaga: zmienne należy robić 64-bitowe, ograniczenie pamięci powoduje, że nie można kursów trzymać w tablicy!
Pseudokod
1. wczytaj(n)
2. for i := 1 to n do
3.
4.
5.
6.
7.
8.
wczytaj(k, s)
if i == 1 then
min_kupno := k
najkupno := k
najsprzedaz := s
if s*najkupno > najsprzedaz*min_kupno then
9.
najkupno := min_kupno
10.
najsprzedaz := min_sprzedaz
11.
min_kupno := min(min_kupno, k)
12. wczytaj(m)
13. if najkupno < najsprzedaz then
14.
wypisz(m*najsprzedaz/najkupno)
15. else
16.
wypisz(m)
Opracowanie GIE: Giełda
1/1