제출 #436605

#제출 시각아이디문제언어결과실행 시간메모리
436605Stickfish사탕 분배 (IOI21_candies)C++17
3 / 100
625 ms8104 KiB
#include "candies.h" #include <vector> using namespace std; using ll = long long; const int MAXN = 2e5 + 123; const int INF = 1e9 + 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<int> pf(n + 1, 0); for(int qi = 0; qi < q; ++qi){ pf[l[qi]] += v[qi]; pf[r[qi]] -= v[qi]; } int sm = 0; for(int i = 0; i < n; ++i){ sm += pf[i]; sm = max(sm, 0); sm = min(sm, INF); s[i] = min(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...