# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
436236 | 2021-06-24T10:48:37 Z | Apiram | Distributing Candies (IOI21_candies) | C++17 | 141 ms | 10476 KB |
#include "candies.h" #include<bits/stdc++.h> using namespace std; std::vector<int> distribute_candies(std::vector<int> c, std::vector<int> l, std::vector<int> r, std::vector<int> v) { int n = c.size(); vector<int64_t>ans(n,0); vector<int64_t>pref(n+1,0); for (int i =0;i<l.size();++i){ if (v[i]>=0){ pref[l[i]]+=v[i]; pref[r[i]+1]-=v[i]; } else { for(int j = 1;j<n;++j){ pref[j]+=pref[j-1]; ans[j-1]=min(pref[j-1]+ans[j-1],(int64_t)c[j-1]); if (l[i]<=j-1&&r[i]>=j-1){ ans[j-1]=max((int64_t)min((int64_t)pref[j-1]+ans[j-1],(int64_t)c[j-1])+v[i],(int64_t)0); } pref[j-1]=0; } ans[n-1]=min(pref[n-1]+ans[n-1],(int64_t)c[n-1]); if (l[i]<=n-1&&r[i]>=n-1){ ans[n-1]=max((int64_t)min((int64_t)pref[n-1]+ans[n-1],(int64_t)c[n-1])+v[i],(int64_t)0); } pref[n-1]=0; } } ans[0]=min((int64_t)pref[0]+ans[0],(int64_t)c[0]); for (int i =1;i<n;++i){ pref[i]+=pref[i-1]; ans[i]=max((int64_t)0,(int64_t)min((int64_t)(pref[i]+ans[i]),(int64_t)c[i])); } vector<int>val(n,0); for (int i =0;i<n;++i){ val[i]=ans[i]; } return val; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 204 KB | Output is correct |
2 | Incorrect | 1 ms | 204 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 141 ms | 10476 KB | Output is correct |
2 | Correct | 123 ms | 10460 KB | Output is correct |
3 | Correct | 137 ms | 10412 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 204 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 204 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 204 KB | Output is correct |
2 | Incorrect | 1 ms | 204 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |