Zgłaszanie | Wszystkie zgłoszenia | Najlepsze | Lista |
ETI06E1 - Niedokładne kodowanie |
Na lekcji informatyki Pani pokazała Jasiowi, w jaki sposób można łatwo zakodować ciąg znaków, tak aby skrócić zapis dla wielu często występujących ciągów. Można to osiągnąć, zastępując wszystkie sąsiadujące ze sobą identyczne znaki przez liczbę oznaczającą krotność ich wystąpień i jedno wystąpienie znaku. Przykładowo, słowo aaaabbbcaaaddddddddddz zostanie zakodowane jako 4a3b1c3a10d1z. Przyjęta metoda kodowania prowadzi zawsze do jednoznacznego wyniku. Co więcej, jeżeli wiemy, że kodowany ciąg złożony jest wyłącznie z liter alfabetu, to można go jednoznacznie rozkodować.
Niestety Jaś ochoczo zastosował nowo poznaną metodę do zakodowania treści pracy domowej z matematyki. Zakodowana przez niego liczba p składała się wyłącznie z cyfr dziesiętnych 0..9 i nie zaczynała się od cyfry 0. Biedny Jaś siedzi teraz w domu i próbuje teraz odtworzyć treść pracy domowej, pamiętając tylko:
- zakodowaną postać liczby p,
- liczbę cyfr występujących w niezakodowanym zapisie p.
Podaj najmniejszą możliwą spośród liczb, które mógł zapamiętać Jaś.
Wejście
Dane wejściowe rozpoczynają się od linii zawierającej parę liczb całkowitych k n oddzielonych spacją (2<=k<=1000, 1<=n<=10000), oznaczających odpowiednio długość zapisu liczby p w jej postaci zakodowanej i niezakodowanej. Kolejna linia zawiera k znaków (cyfr 0..9) oznaczających postać zakodowaną liczby p.
Wyjście
Należy wypisać linię zawierającą najmniejszą możliwą spośród wartości niezakodowanej liczby p. Wiadomo, że Jaś w swoim kodowaniu nie popełnił błędu.
Przykłady
Zestaw przykładowy 1 Wejście: 4 3 1224 Wyjście 244 Zestaw przykładowy 2 Wejście: 14 39 15631241563124 Wyjście 533333344444444444466666666666666611144
Dodane przez: | adrian |
Data dodania: | 2005-11-11 |
Limit czasu wykonania programu: | 0.100s-2.129s |
Limit długości kodu źródłowego | 50000B |
Limit pamięci: | 1536MB |
Cluster: | Cube (Intel G860) |
Języki programowania: | C CPP JAVA PAS-FPC |