#include <iostream>
using namespace std;
char szyfruj_znak(char znak, int klucz) {
int numer = znak - 'a'; // zamiana litery na liczbę 0-25
klucz = klucz % 26; // skrócenie klucza (np. 123 → 19)
int nowy = (numer + klucz) % 26; // przesunięcie
return char(nowy + 'a'); // zamiana z powrotem na literę
}
string szyfruj2(string tekst, int klucz1, int klucz2) {
string wynik = "";
for (int i = 0; i < tekst.length(); i++) {
if (i % 2 == 0) { // pozycje parzyste (0,2,4...)
wynik += szyfruj_znak(tekst[i], klucz1);
} else { // pozycje nieparzyste (1,3,5...)
wynik += szyfruj_znak(tekst[i], klucz2);
}
}
return wynik;
}
int main() {
cout << szyfruj2("poufnytekst", 3, 10) << endl;
cout << szyfruj2("poczekajnamnie", 123, 5) << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2hhciBzenlmcnVqX3puYWsoY2hhciB6bmFrLCBpbnQga2x1Y3opIHsKICAgIGludCBudW1lciA9IHpuYWsgLSAnYSc7ICAgICAgICAgIC8vIHphbWlhbmEgbGl0ZXJ5IG5hIGxpY3pixJkgMC0yNQogICAga2x1Y3ogPSBrbHVjeiAlIDI2OyAgICAgICAgICAgICAgLy8gc2tyw7NjZW5pZSBrbHVjemEgKG5wLiAxMjMg4oaSIDE5KQogICAgaW50IG5vd3kgPSAobnVtZXIgKyBrbHVjeikgJSAyNjsgLy8gcHJ6ZXN1bmnEmWNpZQogICAgcmV0dXJuIGNoYXIobm93eSArICdhJyk7ICAgICAgICAgLy8gemFtaWFuYSB6IHBvd3JvdGVtIG5hIGxpdGVyxJkKfQoKc3RyaW5nIHN6eWZydWoyKHN0cmluZyB0ZWtzdCwgaW50IGtsdWN6MSwgaW50IGtsdWN6MikgewogICAgc3RyaW5nIHd5bmlrID0gIiI7CgogICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZWtzdC5sZW5ndGgoKTsgaSsrKSB7CiAgICAgICAgaWYgKGkgJSAyID09IDApIHsgICAgICAgICAgICAgICAgIC8vIHBvenljamUgcGFyenlzdGUgKDAsMiw0Li4uKQogICAgICAgICAgICB3eW5payArPSBzenlmcnVqX3puYWsodGVrc3RbaV0sIGtsdWN6MSk7CiAgICAgICAgfSBlbHNlIHsgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHBvenljamUgbmllcGFyenlzdGUgKDEsMyw1Li4uKQogICAgICAgICAgICB3eW5payArPSBzenlmcnVqX3puYWsodGVrc3RbaV0sIGtsdWN6Mik7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiB3eW5pazsKfQoKaW50IG1haW4oKSB7CiAgICBjb3V0IDw8IHN6eWZydWoyKCJwb3Vmbnl0ZWtzdCIsIDMsIDEwKSA8PCBlbmRsOwogICAgY291dCA8PCBzenlmcnVqMigicG9jemVrYWpuYW1uaWUiLCAxMjMsIDUpIDw8IGVuZGw7CiAgICByZXR1cm4gMDsKfQ==