Submission #436234

#TimeUsernameProblemLanguageResultExecution timeMemory
436234ApiramDistributing Candies (IOI21_candies)C++17
8 / 100
131 ms8800 KiB
#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<int>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])); } return ans; }

Compilation message (stderr)

candies.cpp: In function 'std::vector<int> distribute_candies(std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>)':
candies.cpp:12:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   12 |     for (int i =0;i<l.size();++i){
      |                   ~^~~~~~~~~
#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...