Submission #1198569

#TimeUsernameProblemLanguageResultExecution timeMemory
1198569NonozeDistributing Candies (IOI21_candies)C++20
3 / 100
62 ms9032 KiB
#include "candies.h"
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define sz(x) (int)x.size()
#define fi first
#define se second
#define all(x) (x).begin(),(x).end()
#define rall(x) (x).rbegin(),(x).rend()
#define cmin(a,b) a=min(a,b)
#define cmax(a,b) a=max(a,b)

int n, q;


vector<int> distribute_candies(vector<int> c, vector<int> l, vector<int> r, vector<int> v) {
    n = sz(c), q=sz(l);
    vector<int> s(n, 0);
    if (n<=2000 && q<=2000) {
        for (int i=0; i<q; i++) {
            while (l[i]<=r[i]) {
                s[l[i]]+=v[i];
                cmax(s[l[i]], 0), cmin(s[l[i]], c[l[i]]);
                l[i]++;
            }
        }
        return s;
    }
    vector<int> beg(n), end(n+1);
    for (int i=0; i<q; i++) beg[l[i]]+=v[i], end[r[i]+1]+=v[i];
    int sm=0;
    for (int i=0; i<n; i++) {
        sm+=beg[i]-end[i];
        s[i]=min(sm, c[i]);
    }
    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...