题目
题意
有两组学生各n人,现要让每个组分数相同的学生一样多,问需要交换几次。
代码
#include<bits/stdc++.h>
using namespace std;
int main() {
int n,a[6]={0},b[6]={0},t;
cin>>n;
for(int i=0;i<n;i++){
cin>>t;
a[t]++;
}
for(int i=0;i<n;i++){
cin>>t;
b[t]++;
}
int ans=0;
for(int i=1;i<6;i++){
if((a[i]+b[i])%2!=0) {printf("-1\n");return 0;}
else ans+=(abs(a[i]-b[i]))/2;
}
cout<<ans/2;//交换即一次变两个
return 0;
}