| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1291847 | eyadooz | 쌀 창고 (IOI11_ricehub) | C++20 | 0 ms | 0 KiB |
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
#define pb push_back
#define all(x) (x).begin(), (x).end()
#define sz(x) (int) (x).size()
#define endl '\n'
int main()
{
cin.tie(0) -> sync_with_stdio(0);
int n, l, b;
cin >> n >> l >> b;
int a[n];
for(auto& i : a) cin >> i;
sort(a,a+n);
int ans=0;
for(int i = 0;i < n;i++)
{
int l=i-1, r=i+1, fb=b, cnt=1;
while(l!=-1&&r!=-1)
{
if(l!=-1&&r!=n)
{
// if(i==2) cout << l << " " << a[i] << " " << a[r] << " " << fb << endl;
if(min(abs(a[r]-a[i]), abs(a[l]-a[i]))>fb) break;
if(abs(a[r]-a[i])<abs(a[l]-a[i])) r++, cnt++, fb-=abs(a[r-1]-a[i]);
else l--, cnt++, fb-=abs(a[l-1]-a[i]);
}
else if(l!=-1)
{
if(abs(a[i]-a[l])>fb) break;
l--, cnt++, fb-=abs(a[i]-a[l-1]);
}
else if(r!=n)
{
if(abs(a[i]-a[r])>fb) break;
r++, cnt++, fb-=abs(a[i]-a[r-1]);
}
}
ans=max(ans, cnt);
}
cout << ans;
}
