var c : char;
numer : integer;
begin
{w petli ma byc:
wczytywanie c (jest)
kodowanie malych liter (jest)
kodowanie wielkich liter (napisac)
kodowanie cyfr (napisac)
po zakodowaniu zmienna c ma zawierac albo
oryginalna wartosc (dla np. '+') albo zakodowana.
wypisanie c (jest)
}
while not eof() do
begin
read(c);
{male litery}
if (c>='a') and (c<='z') then
begin
{numer litery w alfabecie, dla 'a' = 0, dla 'b' =1, ..., 'z'=25 }
numer := ord(c) - ord('a');
{zakodowanie liczby - dodanie 13, i "zawiniecie" jesli numer}
{wykracza poza 'z' (numer 25) }
numer := (numer + 13) mod 26;
c:= chr(ord('a')+numer) ;
end;
if (c>='A') and (c<='Z') then
begin
{numer litery w alfabecie, dla 'a' = 0, dla 'b' =1, ..., 'z'=25 }
numer := ord(c) - ord('A');
{zakodowanie liczby - dodanie 13, i "zawiniecie" jesli numer}
{wykracza poza 'z' (numer 25) }
numer := (numer + 13) mod 26;
c:= chr(ord('A')+numer) ;
end;
{wielkie litery}
{cyfry}
write(c);
end;
end.
dmFyIGMgOiBjaGFyOwogICAgbnVtZXIgOiBpbnRlZ2VyOwoKYmVnaW4KCiAgICB7dyBwZXRsaSBtYSBieWM6CiAgICAgIHdjenl0eXdhbmllIGMgKGplc3QpCiAgICAgIGtvZG93YW5pZSBtYWx5Y2ggbGl0ZXIgKGplc3QpCiAgICAgIGtvZG93YW5pZSB3aWVsa2ljaCBsaXRlciAobmFwaXNhYykKICAgICAga29kb3dhbmllIGN5ZnIgKG5hcGlzYWMpCgogICAgICAgcG8gemFrb2Rvd2FuaXUgem1pZW5uYSBjIG1hIHphd2llcmFjIGFsYm8gCm9yeWdpbmFsbmEgd2FydG9zYyAoZGxhIG5wLiAnKycpIGFsYm8gemFrb2Rvd2FuYS4KCiAgICAgIHd5cGlzYW5pZSBjIChqZXN0KQogICAgfQoKICAgIHdoaWxlIG5vdCBlb2YoKSBkbwogICAgYmVnaW4KICAgICAgICByZWFkKGMpOwoKICAgICAgICB7bWFsZSBsaXRlcnl9CiAgICAgICAgaWYgKGM+PSdhJykgYW5kIChjPD0neicpIHRoZW4KICAgICAgICBiZWdpbgogICAgICAgICAgICB7bnVtZXIgbGl0ZXJ5IHcgYWxmYWJlY2llLCBkbGEgJ2EnID0gMCwgZGxhICdiJyA9MSwgLi4uLCAneic9MjUgfQogICAgICAgICAgICBudW1lciA6PSBvcmQoYykgLSBvcmQoJ2EnKTsKCiAgICAgICAgICAgIHt6YWtvZG93YW5pZSBsaWN6YnkgLSBkb2RhbmllIDEzLCBpICJ6YXdpbmllY2llIiBqZXNsaSBudW1lcn0KICAgICAgICAgICAge3d5a3JhY3phIHBvemEgJ3onIChudW1lciAyNSkgfQogICAgICAgICAgICBudW1lciA6PSAobnVtZXIgKyAxMykgbW9kIDI2OwoKICAgICAgICAgICAgYzo9IGNocihvcmQoJ2EnKStudW1lcikgOwogICAgICAgIGVuZDsKCWlmIChjPj0nQScpIGFuZCAoYzw9J1onKSB0aGVuCiAgICAgICAgYmVnaW4KICAgICAgICAgICAge251bWVyIGxpdGVyeSB3IGFsZmFiZWNpZSwgZGxhICdhJyA9IDAsIGRsYSAnYicgPTEsIC4uLiwgJ3onPTI1IH0KICAgICAgICAgICAgbnVtZXIgOj0gb3JkKGMpIC0gb3JkKCdBJyk7CgogICAgICAgICAgICB7emFrb2Rvd2FuaWUgbGljemJ5IC0gZG9kYW5pZSAxMywgaSAiemF3aW5pZWNpZSIgamVzbGkgbnVtZXJ9CiAgICAgICAgICAgIHt3eWtyYWN6YSBwb3phICd6JyAobnVtZXIgMjUpIH0KICAgICAgICAgICAgbnVtZXIgOj0gKG51bWVyICsgMTMpIG1vZCAyNjsKCiAgICAgICAgICAgIGM6PSBjaHIob3JkKCdBJykrbnVtZXIpIDsKICAgICAgICBlbmQ7CgogICAgICAgIHt3aWVsa2llIGxpdGVyeX0KCiAgICAgICAge2N5ZnJ5fQoKICAgICAgICB3cml0ZShjKTsKICAgIGVuZDsKZW5kLg==