Submission #436609

#TimeUsernameProblemLanguageResultExecution timeMemory
436609StickfishDistributing Candies (IOI21_candies)C++17
3 / 100
702 ms8856 KiB
#include "candies.h" #include <vector> using namespace std; using ll = long long; const int MAXN = 2e5 + 123; const ll INF = 1e18 + 177013; vector<int> distribute_candies(vector<int> c, vector<int> l, vector<int> r, vector<int> v) { int n = c.size(); int q = l.size(); vector<int> s(n, 0); for(int i = 0; i < q; ++i) ++r[i]; if(n <= 2000){ for(int qi = 0; qi < q; ++qi){ for(int i = l[qi]; i < r[qi]; ++i){ s[i] += v[qi]; s[i] = max(s[i], 0); s[i] = min(s[i], c[i]); } } return s; } bool isv_positive = true; for(int i = 0; i < q; ++i) isv_positive &= v[i] > 0; if(isv_positive){ vector<ll> pf(n + 1, 0); for(int qi = 0; qi < q; ++qi){ pf[l[qi]] += v[qi]; pf[r[qi]] -= v[qi]; } ll sm = 0; for(int i = 0; i < n; ++i){ sm += pf[i]; sm = max(sm, 0ll); sm = min(sm, INF); s[i] = min(int(sm), c[i]); } return s; } return s; }
#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...