#include <cstdio>
#include <cstring>
#ifdef LOCAL
#define dbg(...) fprintf(stderr, __VA_ARGS__)
#else
#define dbg(...)
#endif
using namespace std;
int main() {
char s[1000];
int a, b;
scanf("%s", s);
scanf("%d %d", &a, &b);
// change [1, 1000] to [0,999]
a -= 1;
b -= 1;
int a3 = a % 10;
a /= 10;
int a2 = a % 10;
a /= 10;
int a1 = a;
int b3 = b % 10;
b /= 10;
int b2 = b% 10;
b /= 10;
int b1 = b;
if (strcmp(s, "Algosia") == 0) {
// encode
// add 5 to every digit
a1 = (a1 + 5) % 10;
a2 = (a2 + 5) % 10;
a3 = (a3 + 5) % 10;
b1 = (b1 + 5) % 10;
b2 = (b2 + 5) % 10;
b3 = (b3 + 5) % 10;
// mix new digits, add 1 to change [0,999] to [1,1000]
int c = a1 * 100 + b2 * 10 + a3 + 1;
int d = b1 * 100 + a2 * 10 + b3 + 1;
printf("%d %d\n", c, d);
} else {
// decode
// just do the same but I'm not sure if it works yet
// add 5 to every digit
a1 = (a1 + 5) % 10;
a2 = (a2 + 5) % 10;
a3 = (a3 + 5) % 10;
b1 = (b1 + 5) % 10;
b2 = (b2 + 5) % 10;
b3 = (b3 + 5) % 10;
// mix new digits, add 1 to change [0,999] to [1,1000]
int c = a1 * 100 + b2 * 10 + a3 + 1;
int d = b1 * 100 + a2 * 10 + b3 + 1;
printf("%d %d\n", c, d);
}
fflush(stdout);
return 0;
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | #include <cstdio> #include <cstring> #ifdef LOCAL #define dbg(...) fprintf(stderr, __VA_ARGS__) #else #define dbg(...) #endif using namespace std; int main() { char s[1000]; int a, b; scanf("%s", s); scanf("%d %d", &a, &b); // change [1, 1000] to [0,999] a -= 1; b -= 1; int a3 = a % 10; a /= 10; int a2 = a % 10; a /= 10; int a1 = a; int b3 = b % 10; b /= 10; int b2 = b% 10; b /= 10; int b1 = b; if (strcmp(s, "Algosia") == 0) { // encode // add 5 to every digit a1 = (a1 + 5) % 10; a2 = (a2 + 5) % 10; a3 = (a3 + 5) % 10; b1 = (b1 + 5) % 10; b2 = (b2 + 5) % 10; b3 = (b3 + 5) % 10; // mix new digits, add 1 to change [0,999] to [1,1000] int c = a1 * 100 + b2 * 10 + a3 + 1; int d = b1 * 100 + a2 * 10 + b3 + 1; printf("%d %d\n", c, d); } else { // decode // just do the same but I'm not sure if it works yet // add 5 to every digit a1 = (a1 + 5) % 10; a2 = (a2 + 5) % 10; a3 = (a3 + 5) % 10; b1 = (b1 + 5) % 10; b2 = (b2 + 5) % 10; b3 = (b3 + 5) % 10; // mix new digits, add 1 to change [0,999] to [1,1000] int c = a1 * 100 + b2 * 10 + a3 + 1; int d = b1 * 100 + a2 * 10 + b3 + 1; printf("%d %d\n", c, d); } fflush(stdout); return 0; } |
English