#include <iostream>
#include <string>
using namespace std;
const int ALPHABET_SIZE = 'Z' - 'A' + 1;
const int CEZAR_SHIFT = 3;
// dziala tylko dla DUZYCH liter
char cezar_encode(char znak)
{
return 'A' + ((znak - 'A' + CEZAR_SHIFT) % ALPHABET_SIZE);
}
char cezar_decode(char znak)
{
return 'A' + ((ALPHABET_SIZE + znak - 'A' - CEZAR_SHIFT) % ALPHABET_SIZE);
}
int main()
{
string tekst;
int dlugosc,i;
tekst = "ATOJESTTESTZ";
dlugosc=tekst.length();
for(i=0;i<dlugosc;i++)
{
tekst[i] = cezar_encode(tekst[i]);
}
cout << "Zakodowane: " << tekst << endl;
for(i=0;i<dlugosc;i++)
{
tekst[i] = cezar_decode(tekst[i]);
}
cout << "Odkodowane: " << tekst << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGludCBBTFBIQUJFVF9TSVpFID0gJ1onIC0gJ0EnICsgMTsKY29uc3QgaW50IENFWkFSX1NISUZUID0gMzsKIAovLyBkemlhbGEgdHlsa28gZGxhIERVWllDSCBsaXRlcgpjaGFyIGNlemFyX2VuY29kZShjaGFyIHpuYWspCnsKICAgIHJldHVybiAnQScgKyAoKHpuYWsgLSAnQScgKyBDRVpBUl9TSElGVCkgJSBBTFBIQUJFVF9TSVpFKTsKfQoKY2hhciBjZXphcl9kZWNvZGUoY2hhciB6bmFrKQp7CiAgICByZXR1cm4gJ0EnICsgKChBTFBIQUJFVF9TSVpFICsgem5hayAtICdBJyAtIENFWkFSX1NISUZUKSAlIEFMUEhBQkVUX1NJWkUpOwp9CgppbnQgbWFpbigpCnsgCiAKICAgIHN0cmluZyB0ZWtzdDsKICAgIGludCBkbHVnb3NjLGk7CiAKICAgIHRla3N0ID0gIkFUT0pFU1RURVNUWiI7CgogICAgZGx1Z29zYz10ZWtzdC5sZW5ndGgoKTsKIAogICAgZm9yKGk9MDtpPGRsdWdvc2M7aSsrKQogICAgewogICAgICB0ZWtzdFtpXSA9IGNlemFyX2VuY29kZSh0ZWtzdFtpXSk7CiAgICB9CgogICAgY291dCA8PCAiWmFrb2Rvd2FuZTogIiA8PCB0ZWtzdCA8PCBlbmRsOwoKICAgIGZvcihpPTA7aTxkbHVnb3NjO2krKykKICAgIHsKICAgICAgdGVrc3RbaV0gPSBjZXphcl9kZWNvZGUodGVrc3RbaV0pOwogICAgfQogCiAgICBjb3V0IDw8ICJPZGtvZG93YW5lOiAiIDw8IHRla3N0IDw8IGVuZGw7CiAKICAgIHJldHVybiAwOwp9Cg==