제출 #1220699

#제출 시각아이디문제언어결과실행 시간메모리
1220699cjoaNile (IOI24_nile)C++20
17 / 100
2095 ms4164 KiB
#include "nile.h"

#include <vector>
#include <algorithm>
#include <iostream>

using namespace std;

vector<long long> calculate_costs(vector<int> W, vector<int> A, vector<int> B,
                                  vector<int> E) {
    // subtask 3: Q <= 5; A[i] = 2 and B[i] = 1

    const int N = W.size();
    if (N == 1)
        return vector<long long>(N, A[0]);

    long long base_cost = 0;
    for (int i = 0; i < N; i++)
        base_cost += B[i];
//  cerr << "base_cost: " << base_cost << endl;

//    vector<int> extra_cost(N);
//    for (int i = 0; i < N; ++i)
//        extra_cost[i] = A[i] - B[i];
//    for (int x : extra_cost)
//        cerr << x << ' ';
//    cerr << endl;

    const int Q = E.size();
    vector<long long> R(Q, base_cost);

    sort(W.begin(), W.end());
    for (int j = 0; j < Q; ++j) {
        int e = E[j];
        int len = 1;
        for (int i = 0; i+1 < N; ++i) {
            if (W[i+1] - W[i] > e) {
                if (len % 2 == 1)
                    R[j]++;
                len = 1;
            }
            else
                len++;
        }
        if (len % 2 == 1)
            R[j]++;
    }

    return R;
}
#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...