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