제출 #813758

#제출 시각아이디문제언어결과실행 시간메모리
813758PixelCatDistributing Candies (IOI21_candies)C++17
3 / 100
5075 ms14028 KiB
#include "candies.h" #ifdef NYAOWO #include "grader.cpp" #endif #include <bits/stdc++.h> #define For(i, a, b) for(int i = a; i <= b; i++) #define Forr(i, a, b) for(int i = a; i >= b; i--) #define F first #define S second #define sz(x) ((int)x.size()) #define all(x) x.begin(), x.end() #define eb emplace_back // #define int LL using namespace std; using i32 = int32_t; using LL = long long; using pii = pair<int, int>; const int MAXN = 2000; vector<i32> distribute_candies(vector<i32> C, vector<i32> L, vector<i32> R, vector<i32> V) { int n = sz(C); int q = sz(L); vector<int> ans(n); For(i, 0, n - 1) { int c = C[i]; vector<int> add(q); For(j, 0, q - 1) { if(L[j] <= i && i <= R[j]) { add[j] = -V[j]; } } int mx = 0, mn = 0, cur = 0; Forr(j, q - 1, 0) { int nmx = max(mx, cur + add[j]); int nmn = min(mn, cur + add[j]); if(nmx - nmn > c) { if(add[j] < 0) ans[i] = c - mx; else ans[i] = -mn; goto DONE; } cur += add[j]; mx = nmx; mn = nmn; } ans[i] = -mn; DONE:; } return ans; } /* 3 10 15 13 2 0 2 20 0 1 -11 0 4 13 */
#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...