#include <iostream>
using namespace std;
char szyfruj_znak(char znak, int klucz) {
int numer = znak - 'a';
klucz = klucz % 26;
int nowy = (numer + klucz) % 26;
return char(nowy + 'a');
}
string szyfruj2(string tekst, int klucz1, int klucz2) {
string wynik = "";
for (int i = 0; i < tekst.length(); i++) {
if (i % 2 == 0) // PARZYSTE → klucz1
wynik += szyfruj_znak(tekst[i], klucz1);
else // NIEPARZYSTE → klucz2
wynik += szyfruj_znak(tekst[i], klucz2);
}
return wynik;
}
int main() {
cout << szyfruj2("poufnytekst", 3, 10) << endl;
cout << szyfruj2("poczekajnamnie", 123, 5) << endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2hhciBzenlmcnVqX3puYWsoY2hhciB6bmFrLCBpbnQga2x1Y3opIHsKICAgIGludCBudW1lciA9IHpuYWsgLSAnYSc7CiAgICBrbHVjeiA9IGtsdWN6ICUgMjY7CiAgICBpbnQgbm93eSA9IChudW1lciArIGtsdWN6KSAlIDI2OwogICAgcmV0dXJuIGNoYXIobm93eSArICdhJyk7Cn0KCnN0cmluZyBzenlmcnVqMihzdHJpbmcgdGVrc3QsIGludCBrbHVjejEsIGludCBrbHVjejIpIHsKICAgIHN0cmluZyB3eW5payA9ICIiOwoKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVrc3QubGVuZ3RoKCk7IGkrKykgewogICAgICAgIGlmIChpICUgMiA9PSAwKSAgICAgICAgLy8gUEFSWllTVEUg4oaSIGtsdWN6MQogICAgICAgICAgICB3eW5payArPSBzenlmcnVqX3puYWsodGVrc3RbaV0sIGtsdWN6MSk7CiAgICAgICAgZWxzZSAgICAgICAgICAgICAgICAgICAvLyBOSUVQQVJaWVNURSDihpIga2x1Y3oyCiAgICAgICAgICAgIHd5bmlrICs9IHN6eWZydWpfem5hayh0ZWtzdFtpXSwga2x1Y3oyKTsKICAgIH0KCiAgICByZXR1cm4gd3luaWs7Cn0KCmludCBtYWluKCkgewogICAgY291dCA8PCBzenlmcnVqMigicG91Zm55dGVrc3QiLCAzLCAxMCkgPDwgZW5kbDsKICAgIGNvdXQgPDwgc3p5ZnJ1ajIoInBvY3pla2FqbmFtbmllIiwgMTIzLCA1KSA8PCBlbmRsOwp9