http://codeforces.com/problemset/problem/779/A
每个数在2个数组出现的次数和为偶数即可,出现次数为偶数即可保证2个数组经过交换均有相同的该数。
一些小细节要注意。
#include<bits/stdc++.h>
#define maxn 105
using namespace std;
int a[maxn],b[maxn];
int main()
{
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
int n,temp;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>temp;
a[temp]++;
}
for(int i=1;i<=n;i++)
{
cin>>temp;
b[temp]++;
}
for(int i=1;i<=5;i++)
{
if((a[i]+b[i])%2!=0)
{
cout<<-1;
return 0;
}
}
int ans=0;
for(int i=1;i<=5;i++)
{
ans+=fabs(a[i]-b[i])/2;
}
cout<<ans/2<<endl;///别忘了除2
return 0;
}