Submission #437550

#TimeUsernameProblemLanguageResultExecution timeMemory
437550StickfishDistributing Candies (IOI21_candies)C++17
11 / 100
601 ms10776 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]; s[i] = int(min(sm, 1ll * 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...