제출 #94777

#제출 시각아이디문제언어결과실행 시간메모리
94777MvC쌀 창고 (IOI11_ricehub)C++11
100 / 100
17 ms3320 KiB
#include "ricehub.h" #pragma GCC optimize("O3") #include<bits/stdc++.h> #define rc(x) return cout<<x<<endl,0 #define pb push_back #define in insert #define er erase #define fd find #define fr first #define sc second typedef long long ll; typedef long double ld; const ll INF=0x3f3f3f3f3f3f3f3f; const ll llinf=(1LL<<62); const int inf=(1<<30); const int nmax=1e5+50; const int mod=1e9+7; using namespace std; int n,m,l,r,mid,i; ll b,x[nmax],s[nmax]; int ok(int k,int md) { for(int i=k;i<=n;i++) { ll tot=x[i-k+md]*1LL*md-(s[i-k+md]-s[i-k])+s[i]-s[i-k+md]-1LL*(k-md)*x[i-k+md]; if(tot<=b)return 1; } return 0; } int besthub(int N,int m,int y[],ll B) { //freopen("sol.in","r",stdin); //freopen("sol.out","w",stdout); //ios_base::sync_with_stdio(false);cin.tie(0);cerr.tie(0);cout.tie(0); b=B; n=N; for(i=1;i<=n;i++) { x[i]=y[i-1]; s[i]=s[i-1]+x[i]; } l=1,r=n; while(l<=r) { mid=(l+r)/2; if(ok(mid,(mid/2)+1))l=mid+1; else r=mid-1; } return max(l-1,1); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...