#include <bits/stdc++.h> using namespace std; long long fp(long long a, long long n){ long long m=100000000007; long long s; if(n==1){ return a%m; } if(n%2==0){ s=fp(a,n/2); return (s * s)%m; }else{ s=fp(a,n-1); return (a * s)%m; } } int main(){ int n, wyn1, wyn2; long long m=100000000007; char g; string t; wyn1=0; wyn2=0; cin >> n; if(n!=0){ n++; g=getchar(); for(int i=0; i<=n-2; i++){ g=getchar(); wyn1+=g*fp(124,i+1)%m; wyn2+=g*fp(124,n-i-1)%m; } }else{ cin >> t; if(t.size()>1){ for(int i=0; i<=(t.size()/2) -1; i++){ if(t[i]!=t[t.size()-1-i]){ wyn1=1; break; } } } } if(wyn1==wyn2){ cout << "TAK"; }else cout << "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 | #include <bits/stdc++.h> using namespace std; long long fp(long long a, long long n){ long long m=100000000007; long long s; if(n==1){ return a%m; } if(n%2==0){ s=fp(a,n/2); return (s * s)%m; }else{ s=fp(a,n-1); return (a * s)%m; } } int main(){ int n, wyn1, wyn2; long long m=100000000007; char g; string t; wyn1=0; wyn2=0; cin >> n; if(n!=0){ n++; g=getchar(); for(int i=0; i<=n-2; i++){ g=getchar(); wyn1+=g*fp(124,i+1)%m; wyn2+=g*fp(124,n-i-1)%m; } }else{ cin >> t; if(t.size()>1){ for(int i=0; i<=(t.size()/2) -1; i++){ if(t[i]!=t[t.size()-1-i]){ wyn1=1; break; } } } } if(wyn1==wyn2){ cout << "TAK"; }else cout << "NIE"; } |