已 AC,但有疑惑
查看原帖
已 AC,但有疑惑
537046
大眼仔Happy楼主2023/11/9 21:46
#include<bits/stdc++.h>
using namespace std;
const int N=2005;
int inline read()
{
	int num=0,f=1;
	char ch=getchar();
	while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
	while(ch>='0'&&ch<='9'){num=(num<<3)+(num<<1)+(ch^48);ch=getchar();}
	return num*f;
}
int n,a[N],b[N],ans;
int ha,ta,hb,tb;
int main(){
	n=read();ha=hb=1;ta=tb=n;
	for(int i=1;i<=n;i++)a[i]=read();sort(a+1,a+1+n);
	for(int i=1;i<=n;i++)b[i]=read();sort(b+1,b+1+n);
	for(int i=1;i<=n;i++)
	{
		if(a[ta]>b[tb]){ta--;tb--;ans+=200;continue;}
		if(a[ta]<b[tb]){ha++;tb--;ans-=200;continue;}
		if(a[ha]>b[hb]){ha++;hb++;ans+=200;continue;}
//		if(a[ha]<b[hb])ans-=200;ha++;tb--;
		if(a[ha]<b[tb])ans-=200;ha++;tb--;
	}
	printf("%d",ans);
	return 0;
}

被注释的那行是我一开始的写法,只有 10pts。但是理论上两者不是等价的吗

2023/11/9 21:46
加载中...