Submission #1210688

#TimeUsernameProblemLanguageResultExecution timeMemory
1210688AvianshNile (IOI24_nile)C++20
17 / 100
2094 ms4680 KiB
#include "nile.h"
#include <bits/stdc++.h>

using namespace std;

vector<long long> calculate_costs(vector<int> W, vector<int> A, vector<int> B, vector<int> E) {
    int n = A.size();
    vector<array<int,3>>boxes(n);
    for(int i = 0;i<n;i++){
        boxes[i]={W[i],A[i],B[i]};
    }
    sort(boxes.begin(),boxes.end());
    int q = (int)E.size();
    vector<long long>ans(q);
    for(int z = 0;z<q;z++){
        int d = E[z];
        long long dp[n];
        dp[0]=boxes[0][1];
        for(int i = 1;i<n;i++){
            dp[i]=dp[i-1]+boxes[i][1];
            long long asum = 0;
            for(int j = i-1;j>=0;j--){
                if(boxes[i][0]-boxes[j][0]<=d&&j)
                    dp[i]=min(dp[i],dp[j-1]+asum+boxes[j][2]+boxes[i][2]);
                else if(boxes[i][0]-boxes[j][0]<=d)
                    dp[i]=min(dp[i],asum+boxes[j][2]+boxes[i][2]);
                else
                    break;
                asum+=boxes[j][1];
            }
        }
        ans[z]=dp[n-1];
    }
    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...