比赛 ry分享赛 评测结果 AAAAAAAAAA
题目名称 服务 最终得分 100
用户昵称 123 运行时间 0.216 s
代码语言 C++ 内存使用 3.76 MiB
提交时间 2026-03-19 19:20:37
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
const int N=3e4+10;
int n;
struct node {
	int x,y;
} e[N];
int cmp1(node x,node y)
{
	return x.x<y.x;
}
int cmp2(node x,node y)
{
	return x.y<y.y;
}
int cmp3(node x,node y)
{
	return x.x+x.y<y.x+y.y;
}
int cmp4(node x,node y)
{
	return x.x-x.y<y.x-y.y;
}
int cmp5(node x,node y)
{
	return x.y-x.x<y.y-y.x;
}
int cmp6(node x,node y)
{
	return x.x+x.y>y.x+y.y;
}
int cmp7(node x,node y)
{
	return x.x-x.y>y.x-y.y;
}
int cmp8(node x,node y)
{
	return x.y-x.x>y.y-y.x;
}
int cmp9(node x,node y)
{
	return x.x/x.y<y.x/y.y;
}
int cmp10(node x,node y)
{
	return x.x/x.y>y.x/y.y;
}
int cmp11(node x,node y)
{
	return x.x*x.y<y.x*y.y;
}
int cmp12(node x,node y)
{
	return x.x*x.y>y.x*y.y;
}
int cmp13(node x,node y)
{
	return x.x+x.y>y.x+y.y;
}
int cmp14(node x,node y)
{
	return x.y>y.y;
}
int cmp15(node x,node y)
{
	return x.x>y.x;
}
int main() {
	freopen("service.in","r",stdin);
	freopen("service.out","w",stdout);
	ios::sync_with_stdio(0),cin.tie(0);
	cin>>n;
	for (int i=1;i<=n;i++) cin>>e[i].x>>e[i].y;
	int cnt1=0,cnt2=0,ans=0,ret=1e9;
	cnt1=cnt2=ans=0;
	sort(e+1,e+n+1,cmp1);
	for (int i=1;i<=n;i++)
	{
		cnt2=max(0,cnt2-e[i].x);
		cnt1+=e[i].x,cnt2+=e[i].y;
		ans=max(ans,cnt1+cnt2);
	}
	ret=min(ret,ans);
	cnt1=cnt2=ans=0;
	sort(e+1,e+n+1,cmp2);
	for (int i=1;i<=n;i++)
	{
		cnt2=max(0,cnt2-e[i].x);
		cnt1+=e[i].x,cnt2+=e[i].y;
		ans=max(ans,cnt1+cnt2);
	}
	ret=min(ret,ans);
	cnt1=cnt2=ans=0;
	sort(e+1,e+n+1,cmp3);
	for (int i=1;i<=n;i++)
	{
		cnt2=max(0,cnt2-e[i].x);
		cnt1+=e[i].x,cnt2+=e[i].y;
		ans=max(ans,cnt1+cnt2);
	}
	ret=min(ret,ans);
	cnt1=cnt2=ans=0;
	sort(e+1,e+n+1,cmp4);
	for (int i=1;i<=n;i++)
	{
		cnt2=max(0,cnt2-e[i].x);
		cnt1+=e[i].x,cnt2+=e[i].y;
		ans=max(ans,cnt1+cnt2);
	}
	ret=min(ret,ans);
	cnt1=cnt2=ans=0;
	sort(e+1,e+n+1,cmp5);
	for (int i=1;i<=n;i++)
	{
		cnt2=max(0,cnt2-e[i].x);
		cnt1+=e[i].x,cnt2+=e[i].y;
		ans=max(ans,cnt1+cnt2);
	}
	ret=min(ret,ans);
	cnt1=cnt2=ans=0;
	sort(e+1,e+n+1,cmp6);
	for (int i=1;i<=n;i++)
	{
		cnt2=max(0,cnt2-e[i].x);
		cnt1+=e[i].x,cnt2+=e[i].y;
		ans=max(ans,cnt1+cnt2);
	}
	ret=min(ret,ans);
	cnt1=cnt2=ans=0;
	sort(e+1,e+n+1,cmp7);
	for (int i=1;i<=n;i++)
	{
		cnt2=max(0,cnt2-e[i].x);
		cnt1+=e[i].x,cnt2+=e[i].y;
		ans=max(ans,cnt1+cnt2);
	}
	ret=min(ret,ans);
	cnt1=cnt2=ans=0;
	sort(e+1,e+n+1,cmp8);
	for (int i=1;i<=n;i++)
	{
		cnt2=max(0,cnt2-e[i].x);
		cnt1+=e[i].x,cnt2+=e[i].y;
		ans=max(ans,cnt1+cnt2);
	}
	ret=min(ret,ans);
	cnt1=cnt2=ans=0;
	sort(e+1,e+n+1,cmp9);
	for (int i=1;i<=n;i++)
	{
		cnt2=max(0,cnt2-e[i].x);
		cnt1+=e[i].x,cnt2+=e[i].y;
		ans=max(ans,cnt1+cnt2);
	}
	ret=min(ret,ans);
	cnt1=cnt2=ans=0;
	sort(e+1,e+n+1,cmp10);
	for (int i=1;i<=n;i++)
	{
		cnt2=max(0,cnt2-e[i].x);
		cnt1+=e[i].x,cnt2+=e[i].y;
		ans=max(ans,cnt1+cnt2);
	}
	ret=min(ret,ans);
	cnt1=cnt2=ans=0;
	sort(e+1,e+n+1,cmp11);
	for (int i=1;i<=n;i++)
	{
		cnt2=max(0,cnt2-e[i].x);
		cnt1+=e[i].x,cnt2+=e[i].y;
		ans=max(ans,cnt1+cnt2);
	}
	ret=min(ret,ans);
	cnt1=cnt2=ans=0;
	sort(e+1,e+n+1,cmp12);
	for (int i=1;i<=n;i++)
	{
		cnt2=max(0,cnt2-e[i].x);
		cnt1+=e[i].x,cnt2+=e[i].y;
		ans=max(ans,cnt1+cnt2);
	}
	ret=min(ret,ans);
	cnt1=cnt2=ans=0;
	sort(e+1,e+n+1,cmp13);
	for (int i=1;i<=n;i++)
	{
		cnt2=max(0,cnt2-e[i].x);
		cnt1+=e[i].x,cnt2+=e[i].y;
		ans=max(ans,cnt1+cnt2);
	}
	ret=min(ret,ans);
	cnt1=cnt2=ans=0;
	sort(e+1,e+n+1,cmp14);
	for (int i=1;i<=n;i++)
	{
		cnt2=max(0,cnt2-e[i].x);
		cnt1+=e[i].x,cnt2+=e[i].y;
		ans=max(ans,cnt1+cnt2);
	}
	ret=min(ret,ans);
	cnt1=cnt2=ans=0;
	sort(e+1,e+n+1,cmp15);
	for (int i=1;i<=n;i++)
	{
		cnt2=max(0,cnt2-e[i].x);
		cnt1+=e[i].x,cnt2+=e[i].y;
		ans=max(ans,cnt1+cnt2);
	}
	ret=min(ret,ans);
	cout<<ret;
}