#include <iostream>
using namespace std;
char szyfruj_znak(char znak, int klucz) {
int litera_alfabetu = int(znak) - 97;
int kod_nowej_litery = (litera_alfabetu + klucz) % 26;
return char(kod_nowej_litery + 97);
}
string szyfruj(string tekst, int klucz) {
string pom = "";
for (int i = 0; i < tekst.size(); i++) {
pom = pom + szyfruj_znak(tekst[i], klucz);
}
return pom;
}
string deszyfruj(string tekst, int klucz) {
return szyfruj(tekst, (26 - klucz % 26) % 26);
}
int main() {
cout << deszyfruj("xvrqlfcbgxnavr", 13) << endl;
cout << deszyfruj("wdmqh", 3) << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2hhciBzenlmcnVqX3puYWsoY2hhciB6bmFrLCBpbnQga2x1Y3opIHsKICAgIGludCBsaXRlcmFfYWxmYWJldHUgPSBpbnQoem5haykgLSA5NzsgCiAgICBpbnQga29kX25vd2VqX2xpdGVyeSA9IChsaXRlcmFfYWxmYWJldHUgKyBrbHVjeikgJSAyNjsgCiAgICByZXR1cm4gY2hhcihrb2Rfbm93ZWpfbGl0ZXJ5ICsgOTcpOyAKfSAKCnN0cmluZyBzenlmcnVqKHN0cmluZyB0ZWtzdCwgaW50IGtsdWN6KSB7CiAgICBzdHJpbmcgcG9tID0gIiI7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IHRla3N0LnNpemUoKTsgaSsrKSB7CiAgICAgICAgcG9tID0gcG9tICsgc3p5ZnJ1al96bmFrKHRla3N0W2ldLCBrbHVjeik7CiAgICB9CiAgICByZXR1cm4gcG9tOwp9CgpzdHJpbmcgZGVzenlmcnVqKHN0cmluZyB0ZWtzdCwgaW50IGtsdWN6KSB7CiAgICByZXR1cm4gc3p5ZnJ1aih0ZWtzdCwgKDI2IC0ga2x1Y3ogJSAyNikgJSAyNik7Cn0KCmludCBtYWluKCkgewogICAgY291dCA8PCBkZXN6eWZydWooInh2cnFsZmNiZ3huYXZyIiwgMTMpIDw8IGVuZGw7CiAgICBjb3V0IDw8IGRlc3p5ZnJ1aigid2RtcWgiLCAzKSA8PCBlbmRsOwogICAgcmV0dXJuIDA7Cn0=