POJ 3258

来源:互联网 发布:什么是移动数据流量 编辑:程序博客网 时间:2024/06/04 17:55

解在一个有序区间,牵扯到试探区间各个数的可能,二分查找



#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;int l,m,n;int x[50005];bool C(int d){int cnt=0;int i,j;j=0;for(i=1;i<n+2;i++){if(x[i]-x[j]>=d) {cnt++;j=i;}}return cnt>=n+1-m;}int main(){freopen("in.txt","r",stdin);while(scanf("%d%d%d",&l,&n,&m)!=EOF){x[0]=0;for(int i=1;i<=n;i++) {scanf("%d",&x[i]);}x[n+1]=l;sort(x,x+n+2);int up=l;int low=0;int mid;int ans;while(low<=up){mid=(up+low)/2;if(C(mid)) {low=mid+1;ans=mid;}else up=mid-1;}cout << ans << endl;}return 0;}


0 0
原创粉丝点击