Submission #1222445

#TimeUsernameProblemLanguageResultExecution timeMemory
1222445LucaIlie나일강 (IOI24_nile)C++20
0 / 100
22 ms4680 KiB
#include "nile.h"
#include <bits/stdc++.h>

using namespace std;

struct aaa {
    int w, a, b;
};

const int MAX_N = 1e5;
long long dp[MAX_N + 1];
aaa v[MAX_N + 1];

vector<long long> calculate_costs(vector<int> w, vector<int> a, vector<int> b, vector<int> e) {

    int n = w.size();
    int q = e.size();
    vector<long long> ans(q);

    for (int i = 0; i < n; i++) 
      v[i + 1] = {w[i], a[i], b[i]};

    sort(v + 1, v + 1 + n, [](aaa x, aaa y) {
        return x.w < y.w;
    });

    for (int j = 0; j < q; j++) {
        int d = e[j];
        for (int i = 1; i <= n; i++) {
            dp[i] = dp[i - 1] + v[i].a;
            long long s = 0;
            for (int j = i - 1; j >= i - 1 && v[i].w - v[j].w <= d; j--) {
                dp[i] = min(dp[i], dp[j - 1] + v[i].b + v[j].b + s);
                s += v[j].a;
            }
        }
        ans[j] = dp[n];
    }

    return ans;
}

#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...