# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
991034 | 2024-06-01T06:22:11 Z | stdfloat | 쌀 창고 (IOI11_ricehub) | C++17 | 0 ms | 0 KB |
#include <bits/stdc++.h> #include "ricehub.h" #include "grader.cpp" using namespace std; using ll = long long; int besthub(int n, int L, int X[], ll B) { vector<ll> p(n); for (int i = 0; i < n; i++) p[i] = (i ? p[i - 1] : 0) + X[i]; int mx = 0; for (int i = 0; i < n; i++) { for (int j = i; j < n; j++) { int x = (j - i) >> 1; if ((i & 1) == (j & 1)) { if ((ll)(x + 1) * X[i + x] - p[i + x] + (i ? p[i - 1] : 0) + p[j] - p[i + x] - (ll)x * X[i + x] > B) break; } else { int y = (X[i + x] + X[i + x + 1]) >> 1; if ((ll)(x + 1) * y - p[i + x] + (i ? p[i - 1] : 0) + p[j] - p[i + x] - (ll)(x + 1) * y > B) break; } mx = max(mx, j - i + 1); } } return mx; }