제출 #617914

#제출 시각아이디문제언어결과실행 시간메모리
617914sokratisi사탕 분배 (IOI21_candies)C++17
0 / 100
191 ms14664 KiB
#include "candies.h"
#include <set>
#include <vector>
#include <algorithm>

using namespace std;

vector<int> distribute_candies(vector<int> c, vector<int> l,
                                    vector<int> r, vector<int> v) {
    int n = c.size();
    vector<int> s(n, 0);
    int q = l.size();
    vector<pair<pair<int, int>, int>> edges;
    for (int i = 0; i < q; i++) {
        edges.push_back({{l[i], 1}, v[i]});
        edges.push_back({{r[i] + 1, 0}, v[i]});
    }
    sort(edges.begin(), edges.end());
    int pos = 0;
    int add = 0;
    for (int i = 0; i < n; i++) {
        while (edges[pos].first.first == i) {
            if (edges[pos].first.second) {
                add += edges[pos].second;
            }
            else {
                add -= edges[pos].second;
            }
            pos++;
        }
        s[i] = min(c[i], add);
    }

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