Submission #603014

#TimeUsernameProblemLanguageResultExecution timeMemory
603014FatihSolakDistributing Candies (IOI21_candies)C++17
11 / 100
104 ms10312 KiB
#include "candies.h"
#include <bits/stdc++.h>
using namespace std;
vector<int> distribute_candies(vector<int> c, vector<int> l,vector<int> r, vector<int> v) {
    int n = c.size();
    int q = l.size();
    vector<int> s(n);
    if(n <= 2000 && q <= 2000){
        for(int i = 0;i<q;i++){
            for(int j = l[i];j<=r[i];j++){
                s[j] += v[i];
                s[j] = max(s[j],0);
                s[j] = min(s[j],c[j]);
            }
        }
    }
    else{
        vector<long long> pre(n+1);
        for(int i = 0;i<q;i++){
            pre[l[i]] += v[i];
            pre[r[i] + 1] -= v[i];
        }
        for(int i = 0;i<n;i++){
            if(i)
                pre[i] += pre[i-1];
            long long num = pre[i];
            long long val = c[i];
            num = min(num,val);
            s[i] = num;
        }
    }
    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...