#include using namespace std; typedef long long ll; typedef pair ii; typedef vector vi; typedef vector vii; const int inf=0x3f3f3f3f; #define FOR(i,b,e) for(int i=b; i<=e; i++) #define FORD(i,b,e) for(int i=b; i>=e; i--) #define SIZE(x) ((int)x.size()) #define pb push_back #define st first #define nd second #define sp ' ' #define ent '\n' string s1, s2; int G[5][5]; int mapka[200]; int ans; vector cykle[5]; void rob(vi cykl){ int ile=inf; cykl.pb(cykl[0]); FOR(i, 0, SIZE(cykl)-2) ile=min(ile, G[cykl[i]][cykl[i+1]]); FOR(i, 0, SIZE(cykl)-2) G[cykl[i]][cykl[i+1]]-=ile; ans+=ile*(SIZE(cykl)-2); } void solve(){ mapka['A']=1, mapka['C']=2, mapka['G']=3, mapka['T']=4; cin>>s1>>s2; FOR(i, 0, SIZE(s1)-1) G[mapka[s1[i]]][mapka[s2[i]]]++; vi nowy, vec={1, 2, 3, 4}; do{ FOR(i, 0, 3){ nowy.pb(vec[i]); cykle[i+1].pb(nowy); } nowy.clear(); }while(next_permutation(vec.begin(), vec.end())); FOR(i, 1, 4){ sort(cykle[i].begin(), cykle[i].end()); cykle[i].erase(unique(cykle[i].begin(), cykle[i].end()), cykle[i].end()); } FOR(i, 1, 4) for(auto &x: cykle[i]) rob(x); cout<