Submission #1189429

#TimeUsernameProblemLanguageResultExecution timeMemory
1189429theyeiaNile (IOI24_nile)C++20
6 / 100
24 ms7540 KiB
#include "nile.h"
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using pl = pair<ll,ll>;
using vl = vector<ll>;
using vi = vector<int>;
const int MOD = 1e9 + 7;
#define F first
#define S second
#define sor(x) sort(begin(x), end(x))
#define FOR(i, a, b) for (int i = a; i < b; i++)

ll n, q;
ll preans = 0;

vector<tuple<ll,ll,ll>> Artifacts;
vector<tuple<ll,ll,ll>> Raw;
vector<pl> Queries;
vl Ans;

void find() {

}

void unite() {

}

vl calculate_costs(vi W, vi A, vi B, vi E) {
    ll n = W.size(), q = E.size();

    Ans.resize(q, 0);

    FOR(i, 0, n) {
        ll w = W[i], a = A[i], b = B[i];

        preans += b;
        Artifacts.push_back({w, a - b, i});
        Raw.push_back({w, a, b});
    }
    sor(Artifacts);

    FOR(i, 0, q) {
        ll e = E[i];
        Queries.push_back({e, i});
    }
    sor(Queries);

    

    FOR(i, 0, q) {
        ll d = Queries[i].F;
        ll j = Queries[i].S;

        ll lost = 0;

        if (n % 2) {
            lost = 1e9;
            FOR(i, 0, n) lost = min(lost, get<1>(Artifacts[i]));
        }

        Ans[j] = preans + lost;
    }

    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...