제출 #448012

#제출 시각아이디문제언어결과실행 시간메모리
448012aris12345678사탕 분배 (IOI21_candies)C++17
11 / 100
5085 ms13644 KiB
#include <bits/stdc++.h> #include "candies.h" using namespace std; const int mxN = 200005; bool sub2(vector<int> v) { int q = int(v.size()); for(int i = 0; i < q; i++) { if(v[i] < 0) return false; } return true; } vector<int> distribute_candies(vector<int> c, vector<int> l, vector<int> r, vector<int> v) { int n = int(c.size()), q = int(l.size()); vector<int> ans(n, 0); vector<long long> pref(n, 0); if(sub2(v)) { for(int i = 0; i < q; i++) { pref[l[i]] += 1LL*v[i]; if(r[i] < n) pref[r[i]+1] -= 1LL*v[i]; } for(int i = 0; i < n; i++) { if(i > 0) pref[i] += pref[i-1]; if(pref[i] < c[i]) ans[i] = pref[i]; else ans[i] = c[i]; } } else { for(int i = 0; i < q; i++) { for(int j = l[i]; j <= r[i]; j++) { if(v[i] > 0) ans[j] = min(c[j], ans[j]+v[i]); else ans[j] = max(0, ans[j]+v[i]); } } } return ans; }
#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...