#include #include #include #include using namespace std; vector OOO[4][4]; int cnt[4][4]; int main(){ string s, t; cin >> s >> t; unordered_map ump; ump['A'] = 0; ump['C'] = 1; ump['G'] = 2; ump['T'] = 3; int n = s.size(); int m = t.size(); for(int i = 0; i < n; i++){ if(s[i] != t[i]){ OOO[ump[s[i]]][ump[t[i]]].push_back(i); } } for(int i = 0; i < 4; i++){ for(int j = 0; j < 4; j++){ if(i == j) continue; reverse(OOO[i][j].begin(),OOO[i][j].end()); } } int c1 = 0; for(int i = 0; i < n; i++){ if(s[i] != t[i]){ if(OOO[ump[t[i]]][ump[s[i]]].size() && OOO[ump[s[i]]][ump[t[i]]].size()){ int x = OOO[ump[t[i]]][ump[s[i]]].back(); OOO[ump[t[i]]][ump[s[i]]].pop_back(); OOO[ump[s[i]]][ump[t[i]]].pop_back(); c1++; swap(s[i], s[x]); } } } int c2 = 0; for(int i = 0; i < 4; i++){ for(int j = 0; j < 4; j++){ if(i == j) continue; c2 += OOO[i][j].size(); } } //cout << s << " " << t << " " << c2 << endl; cout << c1 + (2 * c2 / 3) + (c2 % 3) << endl; }