#include <cstdio> int main () { unsigned long long x[16]={0,0}, y[16]={0,0}, p[16]={636094623231363827,595056260442243529}, r[16]={1,1}; int c, d, q[16]={29,31}; scanf ("%d ", &c); while (1) { c=getchar (); if (c<'a'||c>'z') break; c-='a'; for (int i=0; i<2; i++) { x[i]*=q[i]; x[i]%=p[i]; x[i]+=c; x[i]%=p[i]; y[i]+=c*r[i]%p[i]; y[i]%=p[i]; r[i]*=q[i]; r[i]%=p[i]; } } d=0; for (int i=0; i<2; i++) d+=x[i]!=y[i]; puts (d? "NIE": "TAK"); 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 | #include <cstdio> int main () { unsigned long long x[16]={0,0}, y[16]={0,0}, p[16]={636094623231363827,595056260442243529}, r[16]={1,1}; int c, d, q[16]={29,31}; scanf ("%d ", &c); while (1) { c=getchar (); if (c<'a'||c>'z') break; c-='a'; for (int i=0; i<2; i++) { x[i]*=q[i]; x[i]%=p[i]; x[i]+=c; x[i]%=p[i]; y[i]+=c*r[i]%p[i]; y[i]%=p[i]; r[i]*=q[i]; r[i]%=p[i]; } } d=0; for (int i=0; i<2; i++) d+=x[i]!=y[i]; puts (d? "NIE": "TAK"); return 0; } |