1 条题解

  • 0
    @ 2023-4-24 19:33:42
    #include <algorithm>
    #include <iostream>
    #include <cstdio>
    using namespace std;
    const int MAXN = 1000 + 10;
    int n,ma[MAXN],mb[MAXN],maa,mbb,at[MAXN],bt[MAXN],ans1,ans2,tm1[MAXN],tm2[MAXN];
    int main() {
        cin >> n >> maa >> mbb;
        for(int i=1; i<=maa; i++) {
            cin >> ma[i];
        }
        for(int i=1; i<=mbb; i++) {
            cin >> mb[i];
        }
    
        for(int i=1; i<=n; i++) {
            int minj=1<<30, mint=1<<30;
            for(int j=1; j<=maa; j++) {
                if(at[j] + ma[j] < mint) {
                    minj = j, mint = at[j] + ma[j];
                }
            }
            at[minj] = mint;
            tm1[i] = mint;
            if(i == n) ans1 = mint;
        }
        cout << ans1 << " ";
        for(int i=1; i<=n; i++) {
            int minj=1<<30, mint=1<<30;
            for(int j=1; j<=mbb; j++) {
                if(bt[j] + mb[j] < mint) {
                    minj = j, mint = bt[j] + mb[j];
                }
            }
            bt[minj] = mint;
            tm2[i] = mint;
        }
        for(int i=1; i<=n; i++) {
            ans2 = max(ans2, tm1[i] + tm2[n-i+1]);
        }
        cout << ans2;
        return 0;
    }
    
    • 1

    信息

    ID
    611
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    4
    已通过
    4
    上传者