Submission #1302490

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

constexpr long long inf = 1e18;

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 = 0, sum = accumulate(b.begin(), b.end(), 0LL);
        if (n & 1) {
            long long mn = inf;
            if (d == 1) {
                for (int i = 0; i < n; i += 2) {
                    mn = min(mn, sum - b[i] + a[i]);
                }
                ans = mn;
            } else {
                long long mn = inf;
                for (int i = 0; i < n; i++) {
                    mn = min(mn, sum - b[i] + a[i]);
                }
                ans = mn;
            }
        } else {
            ans = sum;
        }
        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...