제출 #165606

#제출 시각아이디문제언어결과실행 시간메모리
165606Peacher29쌀 창고 (IOI11_ricehub)C++14
100 / 100
39 ms4216 KiB
#include "ricehub.h" #include<bits/stdc++.h> using namespace std; class pont{ public: int index; long long ut, el; }; vector<pont> p; const bool operator<(const pont& p1, const pont& p2){ return p1.index < p2.index; } long long L; long long mennyi(long long e, long long i, long long u){ return p[e].ut-p[i].ut-(i-e)*(L-p[i].index) +p[u].el-p[i].el-(u-i)*p[i].index; } int besthub(int n, int l, int x[], long long b) { L=l; int er=0; p.resize(n); for(int i=0;i<n;i++){ p[i].index=x[i]; } sort(p.begin(),p.end()); p[0].el=p[0].index; for(int i=1;i<n;i++){ p[i].el=p[i-1].el+p[i].index; } p[n-1].ut=l-p[n-1].index; for(int i=n-2;i>=0;i--){ p[i].ut=p[i+1].ut+l-p[i].index; } for(int i=0;i<n;i++){ int aa=i, bb = n-1, k; while(aa!=bb){ k=(aa+bb) /2+1; if(mennyi(i, (i+k)/2,k)<=b){ aa=k; } else { bb=k-1; } } er=max(er,aa-i+1); } return er; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...