请问一下大佬这一题我为什么不对,30分?
#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;
int a[1100],b[1100],n,minn=0x3f3f3f3f,sum,pos,cnt,cnt1;
bool f=0;
int main()
{
cin>>n;
cnt=n;
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=1;i<=n;i++) cin>>b[i];
sort(a+1,a+n+1);
sort(b+1,b+n+1);
for(int i=1;i<=n;i++)
{
minn=0x3f3f3f3f;
pos=0;
cnt1=0;
f=0;
for(int j=1;j<=n;j++)
{
f=1;
if(b[j]!=0&&cnt1==0)
{
cnt1=0;
if(a[i]>b[j])
{
if(minn>(a[i]-b[j])&&(a[i]-b[j])>=0)
{
minn=a[i]-b[j];
pos=j;
}
cnt1++;
}
else if(a[i]==b[j])
{
continue;
}
else if(a[i]<b[j])
{
if(f==1)
{
b[cnt]=0;
cnt--;
f=0;
}
sum-=50;
break;
}
}
}
if(pos==0) continue;
b[pos]=0;
sum+=50;
}
cout<<sum;
return 0;
}
我也懒得看了,直接给你吧
int n,a[1005],b[1005],win,lose;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
sort(a+1,a+n+1);
for(int i=1;i<=n;i++){
cin>>b[i];
}
sort(b+1,b+n+1);
int l1=1,r1=n;
int l2=1,r2=n;
while(l1<=r1){
if(a[r1]>b[r2]){
r1--;
r2--;
win++;
}
else if(a[r1]<b[r2]){
l1++;
r2--;
lose++;
}
else{
if(a[l1]>b[l2]){
l1++;
l2++;
win++;
}
else{
if(a[l1]<b[r2]){
lose++;
}
l1++;
r2--;
}
}
}
cout<<50*(win-lose);
l1=l2=1;
r1=r2=n;
while(l1<=r1)
{
if(a[r1]>b[r2])
{
win++;
r1--,r2--;
}
else if(a[r1]<b[r2])
{
lose++;
l1++,r2--;
}
else
{
if(a[l1]>b[l2])
{
win++;
l1++, l2++;
}
else {
if(a[l1]<b[r2]){
lose++;
}
l1++;
r2--;
}
}
}
cout<<(win-lose)*50;
核心
求采纳