#include <bits/stdc++.h> using namespace std; const int N=300001; char zabBi[N]; char zabBa[N]; void permute(char * zab,int n) { //int m=(n%2)? n/2 : n/2+1; int l= (n+1)/2; l += (l%2)-1; for(int i=1; i< (n+1)/2; i+=2) swap(zab[i],zab[l+i]); } int main() { int n; scanf("%d",&n); scanf("%s\n", zabBi); scanf("%s\n", zabBa); // printf("%s\n",zabBi); // printf("%s\n",zabBa); permute(zabBi,n); permute(zabBa,n); // printf("%s\n",zabBi); // printf("%s\n",zabBa); sort(zabBi,zabBi+(n+1)/2); sort(zabBi+(n+1)/2,zabBi+n); sort(zabBa,zabBa+(n+1)/2); sort(zabBa+(n+1)/2,zabBa+n); // printf("%s\n",zabBi); // printf("%s\n",zabBa); for(int i=0; i<n; ++i) if(zabBi[i]!=zabBa[i]) { printf("NIE\n"); return 0;} printf("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 | #include <bits/stdc++.h> using namespace std; const int N=300001; char zabBi[N]; char zabBa[N]; void permute(char * zab,int n) { //int m=(n%2)? n/2 : n/2+1; int l= (n+1)/2; l += (l%2)-1; for(int i=1; i< (n+1)/2; i+=2) swap(zab[i],zab[l+i]); } int main() { int n; scanf("%d",&n); scanf("%s\n", zabBi); scanf("%s\n", zabBa); // printf("%s\n",zabBi); // printf("%s\n",zabBa); permute(zabBi,n); permute(zabBa,n); // printf("%s\n",zabBi); // printf("%s\n",zabBa); sort(zabBi,zabBi+(n+1)/2); sort(zabBi+(n+1)/2,zabBi+n); sort(zabBa,zabBa+(n+1)/2); sort(zabBa+(n+1)/2,zabBa+n); // printf("%s\n",zabBi); // printf("%s\n",zabBa); for(int i=0; i<n; ++i) if(zabBi[i]!=zabBa[i]) { printf("NIE\n"); return 0;} printf("TAK\n"); return 0; } |