Submission #588133

#TimeUsernameProblemLanguageResultExecution timeMemory
588133sofijavelkovskaDistributing Candies (IOI21_candies)C++17
3 / 100
5015 ms25320 KiB
#include <bits/stdc++.h> using namespace std; void update(int x, int l, int r, int segmenttree[], int ls, int rs, int vs) { if (l>rs || r<ls) return; if (l>=ls && r<=rs) { segmenttree[x]=segmenttree[x]+vs; return; } if (r-l==1) return; int m=(l+r)/2; update(2*x+1, l, m, segmenttree, ls, rs, vs); update(2*x+2, m, r, segmenttree, ls, rs, vs); return; } void find(int x, int l, int r, int segmenttree[], int index, vector<int> &s, vector<int> c) { if (l>index || r<=index) return; s[index]=min(s[index]+segmenttree[x], c[index]); if (r-l==1) return; int m=(l+r)/2; find(2*x+1, l, m, segmenttree, index, s, c); find(2*x+2, m, r, segmenttree, index, s, c); return; } 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> s(n); for (int i=0; i<n; i++) s[i]=0; for (int i=0; i<q; i++) { if (v[i]>0) for (int j=l[i]; j<=r[i]; j++) s[j]=min(s[j]+v[i], c[j]); else for (int j=l[i]; j<=r[i]; j++) s[j]=max(s[j]+v[i], 0); } return s; } int t=0; for (auto x : v) if (x>0) t=t+1; if (t==q) { int m=pow(2, 19); int segmenttree[m]={0}; for (int i=0; i<q; i++) update(0, 0, n, segmenttree, l[i], r[i]+1, v[i]); vector<int> s(n); for (int i=0; i<n; i++) s[i]=0; for (int i=0; i<n; i++) find(0, 0, n, segmenttree, i, s, c); return s; } }

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:73:1: warning: control reaches end of non-void function [-Wreturn-type]
   73 | }
      | ^
#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...