Zgłaszanie | Wszystkie zgłoszenia | Najlepsze | Lista |
WIPING4A - Kompresor |
Zadanie eliminacyjne w konkursie WIPING4 organizowanym przez
Wydział Informatyki Zachodniopomorskiego Uniwersytetu Technologicznego w Szczecinie
Kompresor
Twoim zadaniem jest napisanie programu realizującego taki oto niewyszukany algorytm kompresji/dekompresji tekstu:
Jeśli dany znak występuje w napisie więcej niż 4 razy pod rząd, to zamienia się go na następującą sekwencję:
znak#liczba_wystąpień!
Wejście
Dwa wiersze tekstu zawierające kolejno:
- ciąg znaków do kompresji/dekompresji
- literę K, jeśli program ma pracować jako kompresor albo D, jeśli jako dekompresow
Zapewniamy, że łańcuch przeznaczony do kompresji nie będzie zawierał znaków # i !.
Wyjście
Dwa wiersze tekstu zawierające kolejno:
- ciąg znaków po kompresji/dekompresji
- liczbę całkowitą obrazującą zysk w długości ciągu (w przypadku kompresji) bądź stratę w znakach (w przypadku dekompresji)
Przykład
Wejście:
infoooooooormatyka
K
Wyjście:
info#8!rmatyka
4
Wejście:
info#8!rmatyka
D
Wyjście:
infoooooooormatyka
4
Informacje dodatkowe
-
program zostanie uruchomiony 10 razy dla różnych zestawów danych
- każde poprawne rozwią zanie daje 10% punktacji zadania
- zadanie ma wartość punktową 3,0
Zysk w długości ciągu (w przypadku kompresji) oraz strata w znakach (w przypadku dekompresji)
Dodane przez: | Sławomir Wernikowski |
Data dodania: | 2016-03-05 |
Limit czasu wykonania programu: | 1s |
Limit długości kodu źródłowego | 5000B |
Limit pamięci: | 1536MB |
Cluster: | Cube (Intel G860) |
Języki programowania: | ADA95 C-CLANG C CSHARP C++ 4.3.2 CPP CPP14 CPP14-CLANG C99 LISP clisp JAVA OBJC-CLANG PAS-GPC PAS-FPC PERL PERL6 PHP PIKE PYTHON PYPY PYTHON3 PY_NBC RUBY |