제출 #1251171

#제출 시각아이디문제언어결과실행 시간메모리
1251171lambd47쌀 창고 (IOI11_ricehub)C++20
100 / 100
10 ms720 KiB
#include <bits/stdc++.h> #include "ricehub.h" using namespace std; #define ll long long #define L(i,j,k) for(int i=(j);i<=(k);i++) #define R(i,j,k) for(int i=(j);i>=(k);i--) #define sz(v) ((int)(v).size()) #define all(v) (v).begin(),(v).end() int besthub(int n, int troll, int vec[], long long B){ int l,r; int med; ll val; auto ini=[&](int x)->void{ l=0; r=x-1; med=vec[(l+r)/2]; val=0; L(i,l,r)val+=abs(med-vec[i]); }; auto upd=[&]()->void{ val-=abs(vec[l]-med); l++; r++; int nmed=vec[(l+r)/2]; val+=(nmed-med)*((l+r)/2-l); val-=(nmed-med)*(r-(l+r)/2); val+=abs(vec[r]-nmed); med=nmed; }; auto testa=[&](int m)->bool{ ini(m); ll resp=val; while(r!=n-1){ upd(); resp=min(resp,val); } return resp<=B; }; int lo=1, hi=n; int resp=1; while(lo<=hi){ int m=(lo+hi)/2; if(testa(m)){ lo=m+1; resp=m; } else hi=m-1; } return resp; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...