Submission #570945

#TimeUsernameProblemLanguageResultExecution timeMemory
570945Vanilla사탕 분배 (IOI21_candies)C++17
3 / 100
106 ms8604 KiB
#include <bits/stdc++.h>
using namespace std;
#define int64 long long
const int maxn = 2e5 + 3;
const int64 mod = 1e9 + 7;

vector <int> distribute_candies(vector <int> c, vector <int> l, vector <int> r, vector <int> v) {
    int n = c.size(), q = l.size();
    vector <int> cd (n + 3);
    if (n <= 2000 && q <= 2000){ // 1
        for (int i = 0; i < q; i++){
            for (int j = l[i]; j <= r[i]; j++){
                if (v[i] > 0) {
                    cd[j] = min(c[j], cd[j] + v[i]);
                }
                else cd[j] = max(0, cd[j] + v[i]);
            }
        }
    }
    else {
        for (int i = 0; i < q; i++){
            cd[l[i]]+=v[i];
            cd[r[i] + 1]-=v[i];
        }
        int64 sf = 0;
        for (int i = 0; i < n; i++){
            sf+=cd[i];
            cd[i] = min(cd[i], c[i]);
        }
    }
    vector <int> rt;
    for (int i = 0; i < n; i++){
        rt.push_back(cd[i]);
    }
    return rt;

}

// int main() {
//     vector <int> p1 = {10, 15, 20};
//     vector <int> p2 = {0, 2};
//     vector <int> p3 = {2, 2};
//     vector <int> p4 = {4, 9};
//     for (int i: distribute_candies(p1, p2, p3, p4)) {
//         cout << i << " ";
//     }
// }
#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...