intさわだんのBlack History

刹那的レジェンドになりたい。

POJ(PKU) 2456 Aggressive cows

蟻本にある。
二分探索使わなくても解けるのだろうか。

#include <cstdio>
#include <algorithm>

using namespace std;

const int INF = 1000000001;
int n,c,p[100001];

bool ch(int x){
  int nau = 0,sum = 1,pre = p[nau];
  while(nau < n && sum < c){
    if(pre + x <= p[nau]){
      sum++; pre = p[nau];
    }
    nau++;
  }
  if(sum == c)return true;
  else return false;
}

int main(){

  scanf("%d%d",&n,&c);
  
  for(int i = 0;i < n;i++){
    scanf("%d",&p[i]);
  }
  
  sort(p,p + n);
  
  int lb = -1,ub = INF;
  
  while(ub - lb > 1){
    int mid = (ub + lb) / 2;
    if(ch(mid)) lb = mid;
    else ub = mid;
  }
  
  printf("%d\n",lb);
  
  return 0;
  
}