# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
335791 | sumit_kk10 | 쌀 창고 (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 fast ios_base::sync_with_stdio(0);cin.tie(NULL);cout.tie(NULL)
#define ll long long int
#define ld long double
using namespace std;
const int N = 1e6 + 5;
const int MOD = 1e9 + 7;
int main(){
fast;
long long int r, l;
cin >> r >> l;
long long int a[r], b, ans = 0;
cin >> b;
for(int i = 0; i < r; ++i)
cin >> a[i];
for(int i = 0; i < r; ++i){
int j = i - 1, k = i + 1;
long long int budget = b, how_many = 1;
while(budget){
if(j < 0 and k >= r) break;
if(abs(a[j] - a[i]) <= abs(a[k] - a[i]) and abs(a[j] - a[i]) <= budget and j >= 0){
// if(i == 3)
// cout << a[j] << ' ';
budget -= abs(a[j] - a[i]);
++how_many;
--j;
}
else if(abs(a[k] - a[i]) <= abs(a[j] - a[i]) and abs(a[k] - a[i]) <= budget and k < r){
budget -= abs(a[k] - a[i]);
++how_many;
++k;
}
else
break;
}
// cout << how_many << ' ';
ans = max(ans, how_many);
}
cout << ans;
return 0;
}