Zgłaszanie | Wszystkie zgłoszenia | Najlepsze | Lista |
AL_21_03 - Bank |
Janusz znalazł poważną lukę w bankowości internetowej banku, w którym ma konto. Jest on w stanie modyfikować listę ostatnich 2×n-1 operacji. Dokładniej rzecz ujmując Janusz może zmienić typ dokładnie n wybranych z listy operacji. Zmiana typu polega na zamianie wypłaty na wpłatę i vice versa. Dodatkowo wyboru i zamiany n operacji Janusz może dokonywać wiele razy. Nasz bohater zastanawia się teraz jakie maksymalne saldo ostatnich 2×n-1 operacji mógłby uzyskać wykorzystując znalezioną przez siebie lukę?
Wejście
W pierwszej linii wejścia znajduje się jedna liczba całkowita n ∈ [1;500] określająca liczbę operacji jakie Janusz może zmienić za każdym razem. W kolejnej linii znajduje się 2×n-1 liczb całkowitych opisujących operacje bankowe. Ujemna liczba oznacza wypłatę pieniędzy z rachunku bankowego, zaś liczba dodatnia wpłatę. Wartość bezwzględna każdej z podanych kwot nie przekracza 104. Żadna z kwot nie jest równa 0.
Wyjście
Na wyjściu należy wypisać maksymalne saldo ostatnich 2×n-1 operacji jakie Janusz mógłby uzyskać gdyby wykorzystał znaleziony błąd.
Przykład #1
Wejście
2 -400 -1000 -900
Wyjście
1500
Przykład #2
Wejście
2 500 -100 -5000
Wyjście
5600
Przykład #3
Wejście
5 -100 -100 -100 -100 -100 -100 -100 -100 -100
Wyjście
900
Wyjaśnienie do przykładu
Oto kolejne zamiany. W każdym kroku pogrubione zostały operacje, które uległy zmianie:
- -100 -100 -100 -100 -100 -100 -100 -100 -100
- 100 100 100 100 100 -100 -100 -100 -100
- 100 100 100 100 -100 100 100 100 100
- 100 100 100 -100 -100 -100 -100 -100 -100
- 100 100 -100 100 100 100 100 -100 -100
- 100 100 100 -100 -100 100 100 100 100
- 100 100 100 100 -100 -100 -100 -100 -100
- 100 100 100 100 100 100 100 100 100
Dodane przez: | Maciej Boniecki |
Data dodania: | 2015-03-06 |
Limit czasu wykonania programu: | 0.5s |
Limit długości kodu źródłowego | 50000B |
Limit pamięci: | 1536MB |
Cluster: | Cube (Intel G860) |
Języki programowania: | All except: ASM64 GOSU JS-MONKEY |
Pochodzenie: | ALGOLIGA |
ukryj komentarze
2015-03-07 13:19:55 Maciej Boniecki
Zamieniasz n dowolnych operacji. Nie musi to być zamiana np. wszystkich wpłat na wypłaty albo na odwrót. |
|
2015-03-07 13:16:47 Karol Kuppe
Czy zmiana typu operacji polega na zmianie wszystkich identycznych operacji, które występują? Wnioskuję po 3. przykładzie. |
|
2015-03-07 13:12:05 Maciej Boniecki
Nie, 0 nie występuje na wejściu. |
|
2015-03-07 13:09:02 Gabriela Gierasimiuk
Czy może pojawić się zero na wejściu? |
|
2015-03-07 12:57:10 Maciej Boniecki
Nie, przykład jest poprawny. |
|
2015-03-07 12:45:32 Krzysztof Wojnar
W przykładzie 3 nie ma czasem błędu? bo mi te 900 nijak nie chce wyjść. Musiał by zmienić typ wszystkich operacji, a to chyba niemożliwe |
|
2015-03-07 12:09:12 Maciej Boniecki
Zawsze musi zamienić n operacji. |
|
2015-03-07 12:07:22 Karol Waszczuk
Janusz zawsze chce zmienić typ dokładnie n operacji czy czasem może uznać, że nie ma takiej potrzeby i zmieni ich mniejszą ilość? |