Protokoły
Limit pamięci: 32 MB
Pan Półsieć pracuje w firmie telekomunikacyjnej Bajkotel i jest projektantem protokołów
sieciowych. Obecnie zajmuje się on protokołem umożliwiającym przesyłanie danych z jednego
komputera do drugiego za pomocą kabla nowej generacji. Kablem takim można przesyłać sygnał
o różnych poziomach napięcia, przy czym napięcie to może się zmieniać co
sekundy ( sekundy w trakcie której napięcie musi być stałe
nazywamy impulsem). Dane przesyłane są w postaci paczek obejmujących kolejnych
impulsów (czyli przesłanie jednej paczki zajmuje sekund).
Ze względów technicznych, w obrębie każdej paczki napięcie nie może być stałe, lecz
co jakiś czas musi się zmieniać. Mówiąc ściślej, nie można przesyłać paczek danych
zawierających kolejnych impulsów o takim samym poziomie napięcia.
Jeżeli protokół umożliwia przesłanie różnych paczek, to mówimy, że
w jednej paczce możemy zakodować bitów informacji. Pan Półsieć zastanawia
się, ile bitów informacji można przesłać maksymalnie w ciągu jednej sekundy.
Przykład
Załóżmy, że kablem można przesyłać sygnał o różnych poziomach napięcia (),
które oznaczamy i . Jeżeli napięcie może się zmieniać razy
na sekundę (), paczki obejmują po impulsy () i
w obrębie każdej paczki żadne kolejne impulsy nie mogą mieć takiego samego
napięcia (), to nie można przesyłać paczek: , ,
, , , . Można natomiast przesyłać
paczki: , , , , ,
, , , i .
Ponieważ można przesyłać różnych rodzajów paczek, więc w każdej paczce
można zakodować bitów informacji.
W ciągu sekundy można przesłać paczek, czyli bitów informacji.
Zadanie
Napisz program, który:
- wczyta ze standardowego wejścia liczby , , i
opisujące protokół,
- obliczy maksymalną liczbę bitów informacji, jakie można przesłać w ciągu sekundy,
- wypisze na standardowe wyjście obliczoną liczbę bitów zaokrągloną w dół do najbliższej liczby całkowitej.
Wejście
W pierwszym wierszu pliku tekstowego pro.in zapisane są cztery liczby całkowite, pooddzielane pojedynczymi odstępami:
- liczba poziomów napięcia (),
- częstotliwość impulsów (),
- rozmiar paczki danych (),
- liczbę kolejnych impulsów w paczce, w obrębie których musi nastąpić zmiana napięcia
().
Dodatkowo przyjmujemy, że n/m jest liczbą całowitą mniejszą lub równą 10.
Wyjście
Twój program powinien zapisać w pierwszym i jedynym wierszu standardowego wyjścia jedną liczbę
całkowitą: maksymalną liczbę bitów, jakie można przesłać w ciągu sekundy, zaokrągloną w dół do najbliższej liczby całkowitej.
Przykład
Dla danych wejściowych:
2 20 4 3
poprawną odpowiedzią jest:
16
Autor zadania: Marcin Stefaniak.