# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
97379 | 2019-02-15T16:27:52 Z | Shafin666 | 쌀 창고 (IOI11_ricehub) | C++14 | 0 ms | 0 KB |
#include <bits/stdc++.h> #define mp make_pair #define pb push_back #define pii pair<ll, ll> #define to second #define cost first typedef long long ll; typedef long double ld; using namespace std; ll besthub(ll r, ll l, ll x[], ll b) { ll answer = 0; ll inf = 1e9+7; //sort(x, x+r); ll c = x[r/2]; vector<ll> v; for(ll i = 0; i < r; i++) v.pb(abs(x[i]-c)); v.pb(inf); ll maxlen = 0; ll k = 0, s = 0; for(ll i = 0; i < r+1; i++) { if(s + v[i] <= b) { s += v[i]; k++; } else if(v[i] > b) { maxlen = max(maxlen, k); s = 0; k = 0; } else { maxlen = max(maxlen, k); s = v[i]; k = 1; } } c = x[r/2+1]; v.clear(); for(ll i = 0; i < r; i++) v.pb(abs(x[i]-c)); v.pb(inf); k = 0, s = 0; for(ll i = 0; i < r+1; i++) { if(s + v[i] <= b) { s += v[i]; k++; } else if(v[i] > b) { maxlen = max(maxlen, k); s = 0; k = 0; } else { maxlen = max(maxlen, k); s = v[i]; k = 1; } } return maxlen; } /* ll main() { ll x[6] = {1, 2, 10, 12, 14}; cout << besthub(5, 20, x, 6) << endl; return 0; }*/