제출 #1333992

#제출 시각아이디문제언어결과실행 시간메모리
1333992GoBananas69나일강 (IOI24_nile)C++20
0 / 100
36 ms5084 KiB
#include <algorithm>
#include <cmath>
#include <iostream>
#include <queue>
#include <set>
#include <string>
#include <vector>
typedef long long ll;
using namespace std;

const ll inf = 1e18 + 3;

vector<ll> calculate_costs(vector<int> w, vector<int> A, vector<int> B, vector<int> E) {
    ll cost = 0;
    int n = w.size();
    vector<ll> c(n);
    for (int i = 0; i < n; ++i) {
        cost += B[i];
        c[i] = A[i] - B[i];
    }
    sort(w.begin(), w.end());
    vector<ll> a(n, inf), b(n, inf);
    int q = E.size();
    vector<ll> res(q, 0);
    for (int i = 0; i < n - 1; ++i) {
        if (i & 1) a[i] = abs(w[i] - w[i + 1]);
        else b[i] = abs(w[i] - w[i + 1]);
    }
    // for (auto &x : a) cout << x << ' ';
    // cout << '\n';
    // for (auto &x : b) cout << x << ' ';
    // cout << '\n';
    for (int i = 0; i < q; ++i) {
        ll d = E[i];
        int ans1 = 0, ans2 = 0;
        for (auto &x : a) if (x <= d) ++ans1;
        for (auto &x : b) if (x <= d) ++ans2;
        res[i] = n - max(ans1, ans2) * 2 + cost;
    }
    return res;
}
#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...