# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
97379 | Shafin666 | Rice Hub (IOI11_ricehub) | C++14 | 0 ms | 0 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#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;
}*/