제출 #394430

#제출 시각아이디문제언어결과실행 시간메모리
394430vishesh312쌀 창고 (IOI11_ricehub)C++17
100 / 100
29 ms3364 KiB
#include "bits/stdc++.h" #include "ricehub.h" using namespace std; /* #include <ext/pb_ds/assoc_container.hpp> using namespace __gnu_pbds; using ordered_set = tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update>; */ #define all(x) begin(x), end(x) #define rall(x) rbegin(x), rend(x) #define sz(x) (int)(x).size() using ll = long long; const int mod = 1e9+7; ll cost(ll st, ll ed, vector<ll> &v, vector<ll> &pre) { ll mid = (st + ed) / 2; ll ret = (mid - st) * v[mid] - (pre[mid] - pre[st]) + (pre[ed+1] - pre[mid+1]) - (ed - mid) * v[mid]; return ret; } int besthub(int r, int l, int x[], ll b) { vector<ll> v(x, x+r); vector<ll> pre(r+1); for (int i = 0; i < r; ++i) pre[i+1] = pre[i] + v[i]; int ans = 0; for (int st = 0; st < r; ++st) { int lo = st, hi = r; while (lo < hi) { int mid = (lo + hi) / 2; ll cur = cost(st, mid, v, pre); if (cur <= b) { ans = max(ans, mid - st + 1); lo = mid + 1; } else { hi = mid; } } } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...