bzoj 1034
最强的比能赢就赢,最弱的比能赢就赢
其他的用最弱的跟别人最强的比
#include<cstdio>
#include<algorithm>
#define MAXN 100010
using namespace std;
int a[MAXN],b[MAXN],n;
int solve (int a[],int b[])
{
int l1,l2,r1,r2,ans=0;
l1=l2=1;r1=r2=n;
while(l1<=r1&&l2<=r2)
{
if(a[l1]>b[l2])
ans+=2,l1++,l2++;
else
if(a[r1]>b[r2])
ans+=2,r1--,r2--;
else
ans+=(a[l1]==b[r2]),l1++,r2--;
}
return ans;
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
for(int i=1;i<=n;i++)
scanf("%d",&b[i]);
sort(a+1,a+n+1);
sort(b+1,b+n+1);
printf("%d %d",solve(a,b),2*n-solve(b,a));
return 0;
}