제출 #1313600

#제출 시각아이디문제언어결과실행 시간메모리
1313600tsetsenbileg쌀 창고 (IOI11_ricehub)C++20
17 / 100
1 ms336 KiB
#include "ricehub.h" #include <bits/stdc++.h> using namespace std; using ll = long long; using pr = pair<int, int>; #define pb push_back(); const int INF = 1e9+7; int n; ll k, l; int besthub(int R, int L, int a[], long long B) { n = R; l = L; k = B; int res = 0; vector<int> pref(n); deque<int> lef, rig; int r = 0; ll sum = 0; for (int i = 0; i < n; i++) { ll diff = (a[i] - a[max(0, i - 1)]); sum = (sum - rig.size() * diff + lef.size() * diff); lef.push_back(a[i]); if (!rig.empty()) { rig.pop_front(); } else r++; while (sum > k) { sum -= (a[i] - lef.front()); lef.pop_front(); } while (r < n) { if (sum + a[r] - a[i] > k) break; sum += a[r] - a[i]; rig.push_back(a[r]); r++; } while (r < n) { ll b = lef.front(); if (a[i] - b > a[r] - a[i]) { sum -= (a[i] - b); lef.pop_front(); while (r < n) { if (sum + a[r] - a[i] > k) break; sum += a[r] - a[i]; rig.push_back(a[r]); r++; } } else break; } res = max(res, (int)(lef.size() + rig.size())); } // for (auto i : lef) cout << i << ' '; // for (auto i : rig) cout << i << ' '; return res; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...