Submission #1302522

#TimeUsernameProblemLanguageResultExecution timeMemory
1302522kawhietNile (IOI24_nile)C++20
23 / 100
2096 ms5048 KiB
#include <bits/stdc++.h>
#include "nile.h"
using namespace std;

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<array<int, 3>> to_sort;
    for (int i = 0; i < n; i++) {
        to_sort.push_back({w[i], a[i], b[i]});
    }
    sort(to_sort.begin(), to_sort.end());
    for (int i = 0; i < n; i++) {
        w[i] = to_sort[i][0];
        a[i] = to_sort[i][1];
        b[i] = to_sort[i][2];
    }
    vector<long long> ret;
    for (auto d : e) {
        long long ans = accumulate(b.begin(), b.end(), 0LL);
        int sz = 1, mn = a[0] - b[0];
        for (int i = 1; i < n; i++) {
            if (w[i] - w[i - 1] <= d) {
                mn = min(mn, a[i] - b[i]);
                sz++;
            } else {
                if (sz & 1) {
                    ans += mn;
                }
                mn = a[i] - b[i];
                sz = 1;
            }
        }
        if (sz & 1) {
            ans += mn;
        }
        ret.push_back(ans);
    }
    return ret;
}
#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...