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';
  }
}