#include <bits/stdc++.h> using namespace std; using i64 = long long; const int m1 = 1897412383, m2 = 1283918299; const int base = 2333; int p1, q1, w1, p2, q2, w2; int main(){ char c; do c = getchar(); while (c > 'z' || c < 'a'); w1 = w2 = 1; for (; c <= 'z' && c >= 'a'; c = getchar()) { p1 = (p1 + (i64)w1 * c) % m1; q1 = ((i64)q1 * base + c) % m1; w1 = (i64)w1 * base % m1; p2 = (p2 + (i64)w2 * c) % m2; q2 = ((i64)q2 * base + c) % m2; w2 = (i64)w2 * base % m2; } if (p1 == q1 && p2 == q2) puts("TAK"); else puts("NIE"); }
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 | #include <bits/stdc++.h> using namespace std; using i64 = long long; const int m1 = 1897412383, m2 = 1283918299; const int base = 2333; int p1, q1, w1, p2, q2, w2; int main(){ char c; do c = getchar(); while (c > 'z' || c < 'a'); w1 = w2 = 1; for (; c <= 'z' && c >= 'a'; c = getchar()) { p1 = (p1 + (i64)w1 * c) % m1; q1 = ((i64)q1 * base + c) % m1; w1 = (i64)w1 * base % m1; p2 = (p2 + (i64)w2 * c) % m2; q2 = ((i64)q2 * base + c) % m2; w2 = (i64)w2 * base % m2; } if (p1 == q1 && p2 == q2) puts("TAK"); else puts("NIE"); } |