제출 #234057

#제출 시각아이디문제언어결과실행 시간메모리
234057DanerZein쌀 창고 (IOI11_ricehub)C++14
0 / 100
1096 ms768 KiB
#include "ricehub.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
long long ma=-1;
int besthub(int R, int L, int X[], long long B){
  /*  if(R<=500){ ma=-1;
  for(int i=0;i<R;i++){
    for(int j=i;j<R;j++){
      // cout<<i<<" "<<j<<endl;
      vector<int>rp;
      for(int k=i;k<=j;k++){
	rp.push_back(X[k]);
      }
      int mi=(i+j)/2;
      mi=X[mi];
      //  cout<<i<<" "<<j<<endl;
      bool sw=0;
      long long b=B;
      for(int k=0;k<rp.size();k++){
	
	b-=abs(mi-rp[k]);
	if(b<0){
	  sw=1;
	  break;
	}
	//c++;
      }
      if(sw==0){
	//	cout<<i<<" "<<j<<" "<<rp.size()<<endl;
	long long tam=rp.size();
	ma=max(ma,tam);
      }
    }
  }
  return ma;
}
  else{*/
  vector<ll>T;
  T.push_back(0);
  for(int i=0;i<R;i++){
    T.push_back(X[i]+T[T.size()-1]);
  }
  for(int i=0;i<R;i++){
    int l,r;
    l=i;
    r=R;
    while(true){
      if(l>r) break;
      ll mi=l+(r-l)/2;
      ll p=(i+mi)/2;
      if((p-i)*X[p]-(T[p]-T[i])+(T[mi+1]-T[p+1])-(mi-p)*X[p]<=B){
	ma=max(ma,(ll)(mi-i)+1);
	l=mi;
      }
      else{
	r=mi;
      }
    }
  }
  return ma;
  //}
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...