加工生产问题

#include<iostream>
#include<algorithm>
using namespace std;
struct m{
    int a;
    int b;
};
struct m N[1001],N1[1001],N2[1001];
int n;
bool cmp1(m x,m y){
    return x.a<y.a;
}
bool cmp2(m x,m y){
    return x.b>y.b;
}
int main(){
    while(cin>>n){
        int t1=0,t2=0;
        for(int i=1;i<=n;i++)
        cin>>N[i].a;
        for(int i=1;i<=n;i++)
        cin>>N[i].b;
        for(int i=1;i<=n;i++)
        {
            if(N[i].a<=N[i].b){
            N1[++t1].a=N[i].a;
            N1[t1].b=N[i].b;
            }
            else
            {
                N2[++t2].a=N[i].a;
                N2[t2].b=N[i].b;
            }
        }
        sort(N1+1,N1+t1+1,cmp1);
        sort(N2+1,N2+t2+1,cmp2);
        int f1=0,f2=0;
        for(int i=1;i<=t1;i++){
            f1+=N1[i].a;
            f2=max(f2,f1)+N1[i].b;
        }
         for(int i=1;i<=t2;i++){
            f1+=N2[i].a;
            f2=max(f2,f1)+N2[i].b;
        }
        cout<<f2<<endl;
    }
    
    return 0;
}

 

posted @ 2023-04-18 11:12  刘海烽  阅读(17)  评论(0)    收藏  举报