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; }