2017年3月4日18:54:05
思路:两个数组存出现次数,相加为奇数,必失败,最后还要除2
代码如下:
#include<bits/stdc++.h>
using namespace std;
int a[120],c[120];
map<int,int>A,C;
int main(){
int n;
cin>>n;
for(int i=1;i<=n;++i){
cin>>a[i];
A[a[i]]++;
}
for(int i=1;i<=n;++i){
cin>>c[i];
C[c[i]]++;
}
int ans=0;
for(int i=1;i<=5;++i){
if((A[i]+C[i])&1){
cout<<"-1"<<endl;
return 0;
}
else{
ans+=abs(A[i]-C[i])/2;
}
}
printf("%d\n",ans/2);
return 0;
}