Submission #1267867

#TimeUsernameProblemLanguageResultExecution timeMemory
1267867AlgorithmWarrior사탕 분배 (IOI21_candies)C++20
11 / 100
59 ms9032 KiB
#include "candies.h"
#include <bits/stdc++.h>
#define ll long long

using namespace std;

vector<int>distribute_candies(vector<int>c,vector<int>l,vector<int>r,vector<int>v){
    int n=c.size();
    vector<ll>s(n,0);
    int i,j;
    int q=l.size();
    if(n<=5000 && q<=5000){
    for(i=0;i<q;++i){
        for(j=l[i];j<=r[i];++j)
            if(v[i]>0)
                s[j]=min((ll)c[j],s[j]+v[i]);
            else
                s[j]=max((ll)0,s[j]+v[i]);
    }
    }
    else{
        for(i=0;i<q;++i){
            s[l[i]]+=v[i];
            if(r[i]<n-1)
                s[r[i]+1]-=v[i];
        }
        for(i=1;i<n;++i)
            s[i]+=s[i-1];
        for(i=0;i<n;++i)
            s[i]=min(s[i],(ll)c[i]);
    }
    vector<int>rsp(n);
    for(i=0;i<n;++i)
        rsp[i]=s[i];
    return rsp;
}
#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...