#include using namespace std; string a,b; vector arr[4][4]; int visited[1000006]; int counter = 0; int mySize = 0; int help(char c){ if(c == 'A'){ return 0; } if(c == 'C'){ return 1; } if(c == 'G'){ return 2; } if(c == 'T'){ return 3; } return -1; } bool finished(){ for(int i=0;i<4;i++){ for(int j=0;j<4;j++){ if(i!=j && arr[i][j].size() != 0){ return false; } } } return true; } int removePerfect(){ for(int i=0;i<4;i++){ for(int j=0;j<4;j++){ if(i!=j){ if(!arr[i][j].empty() && !arr[j][i].empty()){ visited[arr[i][j].back()] = 1; visited[arr[j][i].back()] = 1; arr[i][j].pop_back(); arr[j][i].pop_back(); return 1; } } } } return 0; } int removeNonPerfect(){ for(;counter>=0;counter--){ if(!visited[counter]){ visited[counter] = 1; int druhy = help(b[counter]); for(int i=0;i<4;i++) { if(!arr[druhy][i].empty()) { int tmp = arr[druhy][i].back(); arr[help(a[counter])][i].push_back(tmp); arr[druhy][i].pop_back(); arr[help(a[counter])][druhy].pop_back(); } } return 1; } } return 0; } int main() { cin>>a>>b; mySize = a.size(); counter = mySize - 1; for(int i=0;i