Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
134794 | mairuisheng | 加工生产调度 | C++ | 解答错误 | 0 | 0 MS | 272 KB | 745 | 2024-03-02 18:36:58 |
#include<bits/stdc++.h> using namespace std; const int MAXN=25005; int n,x,y; int lena,lenb,sum1,sum2; struct node { int l,r; }a[MAXN],b[MAXN]; bool cmp1(node x,node y) { return x.r<y.r; } bool cmp2(node x,node y) { return x.l<y.l; } int main() { scanf("%d",&n); for(int i=1;i<=n;i++) { cin>>x>>y; if(x<y) { a[++lena].r=x; a[lena].l=y; } else { b[++lenb].r=x; b[lenb].l=y; } } sort(a+1,a+lena+1,cmp1); sort(b+1,b+lenb+1,cmp2); for(int i=1;i<=n;i++) { if(i<=lena) { sum1+=a[i].r; if(sum2<sum1)sum2=sum1; sum2+=a[i].l; } else { sum1+=b[i-lena].r; if(sum2<sum1)sum2=sum1; sum2+=b[i-lena].l; } } cout<<sum2<<endl; return 0; }