Submission #1243240

#TimeUsernameProblemLanguageResultExecution timeMemory
1243240nibertDistributing Candies (IOI21_candies)C++20
11 / 100
60 ms9032 KiB
#include <vector> #include <algorithm> using namespace std; vector<int> distribute_candies(vector<int> c,vector<int> l,vector<int> r,vector<int> v) { int n = c.size(), q = r.size(); vector<long long> boxes(n, 0); if(n <= 2000 && q <= 2000) { for (int i = 0; i < q; i++) { int left = l[i], right = r[i], value = v[i]; if (value > 0) { for (int j = left; j <= right; j++) { boxes[j] = min(1LL * c[j], boxes[j] + value); } } else { for (int j = left; j <= right; j++) { boxes[j] = max(0ll, boxes[j] + value); } } } vector<int> result(n); for (int i=0; i < n; i ++){ result[i] = boxes[i]; } return result; } else { for (int i = 0; i < q; i++){ int left = l[i], right = r[i], value = v[i]; boxes[left] += value; if (right + 1 < n) { boxes[right + 1] -= value; } } for (int i = 1; i < n; i++){ boxes[i] += boxes[i - 1]; boxes[i-1] = min(1LL * c[i-1], boxes[i - 1]); } boxes[n - 1] = min(1LL * c[n - 1], boxes[n - 1]); vector<int> result(n); for (int i=0; i < n; i ++){ result[i] = boxes[i]; } return result; } }
#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...