标签:poj2456
Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 6510 | Accepted: 3263 |
Description
Input
Output
Sample Input
5 3 1 2 8 4 9
Sample Output
3
Hint
Source
#include <stdio.h> #include <string.h> #include <algorithm> #define maxn 100010 int pos[maxn], N, C; bool cal(int k) { int i, m, cnt = 0, s, t; s = 0; for(m = 1; m < C; ++m) { t = s + 1; while(t < N && pos[t] - pos[s] < k) ++t; if(t == N) return false; s = t; } return true; } int main() { int i, left, mid, right; while(scanf("%d%d", &N, &C) != EOF) { for(i = 0; i < N; ++i) scanf("%d", &pos[i]); std::sort(pos, pos + N); left = 0; right = pos[N - 1] + 1; while(right - left > 1) { mid = (left + right) >> 1; if(cal(mid)) left = mid; else right = mid; } printf("%d\n", left); } return 0; }
标签:poj2456
原文地址:http://blog.csdn.net/chang_mu/article/details/40858031