#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"; } |
English