建议降橙
题目数据有点水
数据范围1到2000
O(n2)的复杂度也可以轻松过
#include <bits/stdc++.h>
using namespace std;
int n,a[3000],b[3000],maxnum=-100001,minnum=100001;
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+1+n);
sort(b+1,b+1+n);
for(int i=1;i<=n;i++)
{
int sum=0;
for(int j=i;j<=n+i-1;j++)
{
if(a[j-i+1]>b[(j-1)%n+1])
{
sum+=2;
}
else
if(a[j-i+1]==b[(j-1)%n+1])
{
sum+=1;
}
}
maxnum=max(maxnum,sum);
minnum=min(minnum,sum);
}
printf("%d %d",maxnum,minnum);
return 0;
}
这个做法可以在P2587中骗到六十分