Zgłaszanie | Wszystkie zgłoszenia | Najlepsze | Lista |
CZLUWM - Cykliczna zamiana liter |
Dany jest niepusty ciąg znaków s złożony z małych liter alfabetu łacińskiego. Twoim zadaniem jest wybranie dokładnie jednego niepustego spójnego podciągu ciągu s i przesunięcie wszystkich jego liter: ‘z’ → ‘y’ → ‘x’ → … → ‘b’ → ‘a’ → ‘z’. Innymi słowy każdy znak powinien być zastąpiony przez swego poprzednika w alfabecie łacińskim, a litera ‘a’ jest zastępowana przez ‘z’. Jaki leksykograficznie najmniejszy (najwcześniejszy) ciąg znaków może być otrzymany z s po jednokrotnym wykonaniu opisanej powyżej operacji?
Wejście
Jedyny wiersz danych wejściowych zawiera ciąg znaków s (1 ≤ |s| ≤ 100 000) zawierający wyłącznie małe litery alfabetu łacińskiego.
Wyjście
Program powinien wypisać najwcześniejszy leksykograficznie ciąg znaków powstały w wyniku opisanej wyżej zmiany liter w niepustym spójnym (czyli składającym się ze znaków położonych bezpośrednio obok siebie) podciągu ciągu s.
Example
Input:
koczkodan
Output:
jnbyjncan
Input:
abacaba
Output:
aaacaba
Dodane przez: | Marcin Kasprowicz |
Data dodania: | 2018-01-04 |
Limit czasu wykonania programu: | 1s |
Limit długości kodu źródłowego | 50000B |
Limit pamięci: | 1536MB |
Cluster: | Cube (Intel G860) |
Języki programowania: | All except: ASM32-GCC MAWK BC C-CLANG NCSHARP CPP14-CLANG COBOL COFFEE D-CLANG D-DMD ELIXIR FANTOM FORTH GOSU GRV JS-MONKEY JULIA KTLN NIM OBJC OBJC-CLANG OCT PICO PROLOG R RACKET RUST SCM qobi CHICKEN SQLITE SWIFT UNLAMBDA VB.NET |