#include <bits/stdc++.h> using namespace std; const int maxn = 1000; typedef long long ll; typedef pair<int, int> Pii; typedef vector<Pii> vpii; typedef vector<int> vi; typedef vector<ll> vll; #define pb push_back #define fst first #define snd second const ll p1 = 1e9 + 7; const ll p2 = 1e9 + 9; const ll k1 = 31; const ll k2 = 61; ll mn1 = 1; ll mn2 = 1; ll hasz11 = 0; ll hasz12 = 0; ll hasz21 = 0; ll hasz22 = 0; void feeduj(char c) { ll b = c - 'a' + 1; hasz11 = (b * mn1 + hasz11) % p1; hasz21 = (b * mn2 + hasz21) % p2; hasz12 = (k1 * hasz12 + b) % p1; hasz22 = (k2 * hasz22 + b) % p2; mn1 = mn1 * k1 % p1; mn2 = mn2 * k2 % p2; } bool let(char c) { return c >= 'a' && c <= 'z'; } int main() { int val; while((val = getchar()) != EOF) { char c = val; if(let(c)) feeduj(c); } if((hasz11 - hasz12) % p1 == 0 && (hasz21 - hasz22) % p2 == 0) { 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 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 | #include <bits/stdc++.h> using namespace std; const int maxn = 1000; typedef long long ll; typedef pair<int, int> Pii; typedef vector<Pii> vpii; typedef vector<int> vi; typedef vector<ll> vll; #define pb push_back #define fst first #define snd second const ll p1 = 1e9 + 7; const ll p2 = 1e9 + 9; const ll k1 = 31; const ll k2 = 61; ll mn1 = 1; ll mn2 = 1; ll hasz11 = 0; ll hasz12 = 0; ll hasz21 = 0; ll hasz22 = 0; void feeduj(char c) { ll b = c - 'a' + 1; hasz11 = (b * mn1 + hasz11) % p1; hasz21 = (b * mn2 + hasz21) % p2; hasz12 = (k1 * hasz12 + b) % p1; hasz22 = (k2 * hasz22 + b) % p2; mn1 = mn1 * k1 % p1; mn2 = mn2 * k2 % p2; } bool let(char c) { return c >= 'a' && c <= 'z'; } int main() { int val; while((val = getchar()) != EOF) { char c = val; if(let(c)) feeduj(c); } if((hasz11 - hasz12) % p1 == 0 && (hasz21 - hasz22) % p2 == 0) { puts("TAK"); } else { puts("NIE"); } } |