Submission #490845

#TimeUsernameProblemLanguageResultExecution timeMemory
490845KarukDistributing Candies (IOI21_candies)C++17
11 / 100
100 ms10840 KiB
#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(); if(n<=2000 && q<=2000) { vector<int>ans(n,0); for(int i=0;i<q;i++) { for(int j=l[i];j<=r[i];j++) { if(v[i]>0)ans[j]=min(c[j],ans[j]+v[i]); else ans[j]=max(0,ans[j]+v[i]); } } return ans; } vector<long long>add(n+1,0); vector<long long>ans(n,0); for(int i=0;i<q;i++) { add[l[i]]+=v[i]; add[r[i]+1]-=v[i]; } for(int i=0;i<n;i++) { if(i!=0)ans[i]=ans[i-1]; ans[i]+=add[i]; } for(int i=0;i<n;i++) { if(ans[i]>c[i])ans[i]=c[i]; } vector<int>ca; for(long long i:ans)ca.push_back(i); return ca; }
#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...