过样例0分求助,救救孩子吧
查看原帖
过样例0分求助,救救孩子吧
652816
saixingzhe楼主2023/1/28 19:59
#include <bits/stdc++.h>
using namespace std;
int n,i1,i2,s1,s2,ans,sum;
struct Node{
	int a,b;
}a[1000001],b[1000001]; 
bool cmp1(Node x,Node y){
	return x.a<y.a;
}
bool cmp2(Node x,Node y){
	return x.b>y.b;
}
int main(){
	while(scanf("%lld",&n)==1){
		i1=0,i2=0,ans=0,sum=0;
		for(int i=1;i<=n;i++){
			scanf("%d %d",&s1,&s2);
			if(s1<=s2){
				a[++i1].a=s1;
				a[i1].b=s2;
			}
			else{
				b[++i2].a=s1;
				b[i2].b=s2;	
			}
		}	
		sort(a+1,a+i1+1,cmp1);
		sort(b+1,b+i2+1,cmp2);
		for(int i=1;i<=i1;i++){
			ans=min(ans,sum-a[i].a);
			sum+=a[i].b-a[i].a;
		}
		for(int i=1;i<=i2;i++){
			ans=min(ans,sum-b[i].a);
			sum+=b[i].b-b[i].a;
		}
		cout<<(ans>0?ans:-ans)<<endl;
	}
	return 0;
}
2023/1/28 19:59
加载中...