Submission #1172247

#TimeUsernameProblemLanguageResultExecution timeMemory
1172247gygDistributing Candies (IOI21_candies)C++20
3 / 100
5095 ms19176 KiB
#include "candies.h"
#include <bits/stdc++.h>
using namespace std;
#define arr array 
#define vec vector 
const int N = 2e5 + 5;

int n;
arr<int, N> c;
vec<vec<int>> q;

struct Sgt {
    arr<int, N> tr;
    void upd(int l, int r, int x) {
        for (int i = l; i <= r; i++) {
            tr[i] += x;
            tr[i] = min(tr[i], c[i]), tr[i] = max(tr[i], 0);
        }
    }
    int qry(int i) {
        return tr[i];
    }
} sgt;

vec<int> distribute_candies(vec<int> _c, vec<int> _l, vec<int> _r, vec<int> _x) {
    n = _c.size();
    for (int i = 0; i < n; i++) c[i] = _c[i];
    for (int i = 0; i < _l.size(); i++) {
        int l = _l[i], r = _r[i], x = _x[i];
        q.push_back({l, r, x});
    }

    for (vec<int> x : q)
        sgt.upd(x[0], x[1], x[2]);
    
    vec<int> ans;
    for (int i = 0; i < n; i++) ans.push_back(sgt.qry(i));
    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...