Submission
Status:
[-SSSSSSSSS]
Score: 0
User: NTMP
Problemset: 04.Corretc the wodr
Language: cpp
Time: 0.002 second
Submitted On: 2025-04-17 12:41:57
#include <bits/stdc++.h>
using namespace std;
int main(){
int n; cin >> n;
while(n--){
string s1,s2; cin >> s1 >> s2;
map<char, int> mp1,mp2;
for(auto i : s1){
mp1[i]++;
}
for(auto i : s2){
mp2[i]++;
}
bool cant = false;
for(int i=65;i<=97;i++){
if(mp1[i] != mp2[i]){
cout << "Cannot transform to " << s1 <<endl;
cant = true;
break;
}
}
if(cant){
continue;
}
int cnt = 0;
for(int i=0;i<s1.size();i++){
if(s1[i] != s2[i] && s1[i] != '-'){
for(int j=i+1;j<s1.size();j++){
if(s1[j] == s2[i] && s1[i] == s2[j]){
cnt++;
s1[i] = '-'; // mark as swapped
s1[j] = '-'; // mark as swapped
break;
}
}
}
else{ // mark as equal
s1[i] = '-';
}
}
int rem = 0;
for(int i=0;i<s1.size();i++){
if(s1[i] != '-'){
rem++;
}
}
if(rem) {
cout<<cnt+rem-1<<'\n';
continue;
}
// cout<<"cnt "<<cnt<<" rem "<<rem<<endl;
cout<<cnt<<'\n';
}
}