#include <iostream> using namespace std; const int M = (int)(1e9+696969);const int M2 = (int)(1223422313); int main() { int z; long long H=0; long long R=0; const long long p=29; long long pc=1; long long H2=0; long long R2=0; const long long p2=37; long long pc2=1; scanf("%d ",&z); char input; while(true) { input=getchar(); if(input<97) { break; } H=H+(pc*((int)input-96)); H2=H2+(pc2*((int)input-96)); H%=M; H2%=M2; R=R*p+(int)input-96; R2=R2*p2+(int)input-96; R%=M; R2%=M2; pc=(pc*p)%M; pc2=(pc2*p2)%M2; } if(H==R && H2==R2) { printf("TAK"); } else { printf("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 | #include <iostream> using namespace std; const int M = (int)(1e9+696969);const int M2 = (int)(1223422313); int main() { int z; long long H=0; long long R=0; const long long p=29; long long pc=1; long long H2=0; long long R2=0; const long long p2=37; long long pc2=1; scanf("%d ",&z); char input; while(true) { input=getchar(); if(input<97) { break; } H=H+(pc*((int)input-96)); H2=H2+(pc2*((int)input-96)); H%=M; H2%=M2; R=R*p+(int)input-96; R2=R2*p2+(int)input-96; R%=M; R2%=M2; pc=(pc*p)%M; pc2=(pc2*p2)%M2; } if(H==R && H2==R2) { printf("TAK"); } else { printf("NIE"); } } |