#include<bits/stdc++.h>
using namespace std;
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int n;
int i;
int pocz, kon;
char znak;
map<char,int> zab1, zab2;
string str1, str2;
cin>>n;
/*
for(int i=0; i<n; ++i){
cin>> znak;
zab1[znak]++;
}
for(int i=0; i<n; ++i){
cin>> znak;
zab2[znak]++;
}
if(zab1.size() != zab2.size()){
cout<<"NIE\n";
return 0;
}
for(auto z:zab1){
if(z.second != zab2[z.first]) {
cout<<"NIE\n";
return 0;
}
}
*/
cin>>str1>>str2;
vector<char> v1(str1.begin(),str1.end());
vector<char> v2(str2.begin(),str2.end());
auto it1p=v1.begin();
auto it2p=v2.begin();
auto it1k=v1.begin();
auto it2k=v2.begin();
for(; it2p != v2.end(); it2p++){
//cout<<*it2p<<" "<<*it1p<<endl;
if(*it2p == *it1p){
it1p++;
it1k=it1p;
continue;
}
bool np=true;
bool jest=false;
for(; it1k != v1.end(); it1k++){
if(*it1k == *it2p && np){
reverse(it1p, ++it1k);
it1p++;
it1k=it1p;
jest=true;
np=!np;
break;
}
np=!np;
}
if(jest==false){
cout<<"NIE\n";
return 0;
}
}
cout<<"TAK\n";
/* testowanie
for(auto a:v1) cout<<a;
cout<<endl;
for(auto a:v2) cout<<a;
cout<<endl;
*/
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 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 | #include<bits/stdc++.h> using namespace std; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n; int i; int pocz, kon; char znak; map<char,int> zab1, zab2; string str1, str2; cin>>n; /* for(int i=0; i<n; ++i){ cin>> znak; zab1[znak]++; } for(int i=0; i<n; ++i){ cin>> znak; zab2[znak]++; } if(zab1.size() != zab2.size()){ cout<<"NIE\n"; return 0; } for(auto z:zab1){ if(z.second != zab2[z.first]) { cout<<"NIE\n"; return 0; } } */ cin>>str1>>str2; vector<char> v1(str1.begin(),str1.end()); vector<char> v2(str2.begin(),str2.end()); auto it1p=v1.begin(); auto it2p=v2.begin(); auto it1k=v1.begin(); auto it2k=v2.begin(); for(; it2p != v2.end(); it2p++){ //cout<<*it2p<<" "<<*it1p<<endl; if(*it2p == *it1p){ it1p++; it1k=it1p; continue; } bool np=true; bool jest=false; for(; it1k != v1.end(); it1k++){ if(*it1k == *it2p && np){ reverse(it1p, ++it1k); it1p++; it1k=it1p; jest=true; np=!np; break; } np=!np; } if(jest==false){ cout<<"NIE\n"; return 0; } } cout<<"TAK\n"; /* testowanie for(auto a:v1) cout<<a; cout<<endl; for(auto a:v2) cout<<a; cout<<endl; */ return 0; } |
English