#include <iostream>
#include <iomanip>
using namespace std;
int crypt(int v, bool encrypt) {
if (v<0 || v>9999) return -1;
int d = encrypt? 7 : 3;
char digits[4];
for(int i=3; i>=0; i--,v/=10) digits[i] = (v % 10 + d) % 10;
swap(digits[0],digits[2]); swap(digits[1],digits[3]);
int r = 0;
for(int i=3, m=1; i>=0; i--,m*=10) r += digits[i] * m;
return r;
}
int main() {
int e = crypt(8765, true); //encrypt
int d = crypt(e, false); //decrypt
cout <<
"Encrypted:\t" << setw(4) << setfill('0') << e << endl <<
"Decrypted:\t" << d << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgY3J5cHQoaW50IHYsIGJvb2wgZW5jcnlwdCkgewoJaWYgKHY8MCB8fCB2Pjk5OTkpIHJldHVybiAtMTsKCQoJaW50IGQgPSBlbmNyeXB0PyA3IDogMzsKCQoJY2hhciBkaWdpdHNbNF07CgkKCWZvcihpbnQgaT0zOyBpPj0wOyBpLS0sdi89MTApIGRpZ2l0c1tpXSA9ICh2ICUgMTAgKyBkKSAlIDEwOwoKCXN3YXAoZGlnaXRzWzBdLGRpZ2l0c1syXSk7IHN3YXAoZGlnaXRzWzFdLGRpZ2l0c1szXSk7CgkKCWludCByID0gMDsKCWZvcihpbnQgaT0zLCBtPTE7IGk+PTA7IGktLSxtKj0xMCkgciArPSBkaWdpdHNbaV0gKiBtOwoKCXJldHVybiByOwp9CgppbnQgbWFpbigpIHsKCWludCBlID0gY3J5cHQoODc2NSwgdHJ1ZSk7CS8vZW5jcnlwdAoJaW50IGQgPSBjcnlwdChlLCBmYWxzZSk7CS8vZGVjcnlwdAoKCWNvdXQgPDwKCQkiRW5jcnlwdGVkOlx0IiA8PCBzZXR3KDQpIDw8IHNldGZpbGwoJzAnKSA8PCBlIDw8IGVuZGwgPDwgCgkJIkRlY3J5cHRlZDpcdCIgPDwgZCA8PCBlbmRsOwoKCXJldHVybiAwOwp9