Sprawdź się
Zadanie 3. Giełda bajtocka
Ania jest analitykiem giełdowym. W ostatnim miesiącu zbierała dane dotyczące wzrostów i spadków wartości wskaźnika na lokalnej giełdzie w Bajtocji. W celach statystycznych zamierza sprawdzić, jaki najlepszy możliwy wynik giełda osiągnęła w ciągu następujących po sobie dni. By to zrobić, musi znaleźć w całym badanym okresie ciąg następujących po sobie dni, w których suma wyników była największa. Ania bierze pod uwagę to, że wśród dni może być taki, w którym wartość wskaźnika była ujemna oraz to, że na giełdzie może mieć miejsce bessa, czyli wszystkie wskaźniki będą ujemne. W takiej sytuacji program powinien wypisać jednoelementowy podciąg składający się z największej liczby ujemnej.
Dane zapisane są w pliku giełda.txt
. Plik składa się ze wierszy. Każdy wiersz zawiera liczbę rzeczywistą oznaczającą wzrost lub spadek wartości wskaźnika giełdy w danym dniu miesiąca:
Napisz program, który dla danych z pliku giełda.txt
znajdzie spójny podciąg o maksymalnej sumie, a jego sumę zaokrągloną do dwóch miejsc po przecinku zapisze w pliku wyniki.txt
.
Poprzez spójny podciąg o maksymalnej sumie rozumiemy taki podciąg, który jest złożony z elementów kolejno następujących po sobie w ciągu bazowym, a którego zsumowane elementy dają największy możliwy wynik.
Spójny podciąg o maksymalnej sumie wcale nie musi być podciągiem, który składa się ze wszystkich elementów danego ciągu.
Dla przykładowej tablicy dane
:
Suma wszystkich elementów wynosi 3.44
. Jednak już na pierwszy rzut oka możemy stwierdzić, że spójnym podciągiem o większej sumie byłby podciąg jednoelementowy 5.23
.
Tymczasem suma maksymalnego spójnego podciągu{3.1, -1, 2.5, 1.5, 0.4}
wynosi 6.5
.
Do oceny oddajesz:
Dane:
plik
wyniki.txt
z odpowiedzią (liczbą rzeczywistą będącą sumą maksymalnego spójnego podciągu liczb z plikugiełda
.txt
zaokrągloną do dwóch miejsc po przecinku)plik(i) z komputerową realizacją zadania (kodem programu)
Przedstaw rozwiązanie zadania, pisząc program w języku C++, Java lub Python. Zadbaj o prawidłowe wczytanie danych z pliku tekstowego. Rozwiązanie zadania znajduje się pod sekcją ćwiczeń.
Język C++
Java
Python
Odpowiedź do zadania:
wyniki.txt