| 比赛 |
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;
}