/////////////////////////////////
//////**DOMINIK___KOWALCZYK**////
/////////////////////////////////
#include <bits/stdc++.h>
using namespace std;
#define boost ios_base::sync_with_stdio(0);
typedef long long ll;
const int MOD[4] = {1e9 + 7, 1e9 + 9, 533335597, 1e9 + 7};
const int POD[4] = {31, 97, 71, 73};
ll cur[4][2];
ll pot[4];
int main()
{
boost;
int i;
cin >> i;
char s;
for (i = 0 ; i < 4; i++)pot[i] = 1;
while (cin >> s)
{
for (i = 0; i < 4; i++)
{
cur[i][0] += (1ll * pot[i] * (s - 'a' + 1)) % MOD[i];
cur[i][1] *= POD[i];
cur[i][1] += (s - 'a' + 1);
pot[i] *= POD[i];
pot[i] %= MOD[i];
cur[i][0] %= MOD[i];
cur[i][1] %= MOD[i];
}
}
for (i = 0; i < 4; i++)
{
if (cur[i][0] != cur[i][1])
{
cout << "NIE\n";
return 0;
}
}
cout << "TAK\n";
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 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 54 | ///////////////////////////////// //////**DOMINIK___KOWALCZYK**//// ///////////////////////////////// #include <bits/stdc++.h> using namespace std; #define boost ios_base::sync_with_stdio(0); typedef long long ll; const int MOD[4] = {1e9 + 7, 1e9 + 9, 533335597, 1e9 + 7}; const int POD[4] = {31, 97, 71, 73}; ll cur[4][2]; ll pot[4]; int main() { boost; int i; cin >> i; char s; for (i = 0 ; i < 4; i++)pot[i] = 1; while (cin >> s) { for (i = 0; i < 4; i++) { cur[i][0] += (1ll * pot[i] * (s - 'a' + 1)) % MOD[i]; cur[i][1] *= POD[i]; cur[i][1] += (s - 'a' + 1); pot[i] *= POD[i]; pot[i] %= MOD[i]; cur[i][0] %= MOD[i]; cur[i][1] %= MOD[i]; } } for (i = 0; i < 4; i++) { if (cur[i][0] != cur[i][1]) { cout << "NIE\n"; return 0; } } cout << "TAK\n"; return 0; } |
English