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
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
#include <iostream>

using namespace std;

int potegowanie(int b)
{
int i;
int wynik = 1;
long int x = 31%1000000007;

    for (i=1; i<=b; i<<=1)
    {
    x %=1000000007;
    if ((b&i) != 0)
    {
    wynik *= x;
    wynik %= 1000000007;
    }
    x *= x;
    }
    return wynik;
}

int main()
{
    ios_base::sync_with_stdio(0);
    long long  hasz=0, hasz1=0;
    char znak;
    int ilosc;
    string ciag;
    cin>>ilosc;
    if(ilosc!=0)
    {
            int liczba=ilosc/2;
            if(ilosc%2==1){liczba++;}
            int wykladnik=0;
            for(int i=1;i<=ilosc;++i)
            {
                bool stan=0;
                cin>>znak;
                int numer=(int)znak%96;
            //    cout<<"numer: "<<numer<<endl;
                if(i>liczba)
                {wykladnik--;
            //   cout<<"wykladnik: "<<wykladnik<<endl;
                hasz1+=numer*potegowanie(wykladnik);
                hasz1%=1000000007;
            //    cout<<hasz1<<endl;
                }
                else
                {
             //   cout<<"wykladnik: "<<wykladnik<<endl;
              if(ilosc%2==1 && i==liczba){stan=1;}
              if(stan==0)
              {
                hasz+=numer*potegowanie(wykladnik);
                hasz%=1000000007;
                ++wykladnik;
              }
            //    cout<<hasz<<endl;
                }
            }
            if(hasz1==hasz){cout<<"TAK";return 0 ;}
            else{cout<<"NIE";return 0;}
    }
    else
    {
        cin>>ciag;
        ciag="1"+ciag;
        int liczba=(ciag.length()-1)/2;
            if((ciag.length()-1)%2==1){liczba++;}
            int wykladnik=0;
            for(int i=1;i<ciag.length();++i)
            {
                bool stan=0;
                znak=ciag[i];
                int numer=(int)znak%96;
             //   cout<<"numer: "<<numer<<endl;
                if(i>liczba)
                {wykladnik--;
             //  cout<<"wykladnik: "<<wykladnik<<endl;
                hasz1+=numer*potegowanie(wykladnik);
                hasz1%=1000000007;
             //   cout<<hasz1<<endl;
                }
                else
                {
             //   cout<<"wykladnik: "<<wykladnik<<endl;
              if((ciag.length()-1)%2==1 && i==liczba){stan=1;}
              if(stan==0)
              {
                hasz+=numer*potegowanie(wykladnik);
                hasz%=1000000007;
                ++wykladnik;
              }
             //   cout<<hasz<<endl;
                }
            }
            if(hasz1==hasz){cout<<"TAK";return 0 ;}
            else{cout<<"NIE";return 0;}
    }


}