Submission #722687

#TimeUsernameProblemLanguageResultExecution timeMemory
722687Mr_HusanboyDistributing Candies (IOI21_candies)C++17
29 / 100
125 ms16084 KiB
#include "candies.h" #include <bits/stdc++.h> using namespace std; using ll = long long; template<typename T> int len(T &a){ return a.size(); } const ll infl = 1e8; #include <vector> vector<int> distribute_candies(vector<int> c, vector<int> l, vector<int> r, vector<int> v) { int n = c.size(); int m = len(v); vector<ll> suf(m + 1), mx(m + 1), mn(m + 1); mx[m] = 0, mn[m] = 0; for(int i = m - 1; i >= 0; i --){ suf[i] = suf[i + 1] - v[i]; mx[i] = max(mx[i + 1], suf[i]); mn[i] = min(mn[i + 1], suf[i]); } for(int i = 0; i < n; i ++){ int l = 0, r = m; while(l <= r){ int mid = (l + r) >> 1; if(mx[mid] - mn[mid] >= c[i]){ l = mid + 1; }else r = mid - 1; } r ++; if(r == 0 || v[r - 1] < 0){ c[i] = -mn[r]; }else{ c[i] = c[i] - mx[r]; } } //for(auto u : suf) cout << u << ' ';cout << endl; return c; }
#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...