这真的是一道谜一样的经年老题
记录:测评
上图忽视洛谷水印
就是这么的曲折,震惊!居然做不出来过了将近半年才发现并A掉这个水题??【大雾】
关于为何这么惨的曲折的玄学错误:
将main函数内第一行int 的 right 赋值 l,然鹅!!l在下一行才输进来【大雾??】
所以为何60玄学WA4个点?
玄学80TLE两个点?
【大雾大雾,玄学果然是门深刻的学问】
#include<bits/stdc++.h> using namespace std; int a[50005]; int main() { int l,n,m,left,right,mid,now,i,s,ans; scanf("%d%d%d",&l,&n,&m); for(i=1;i<=n;i++) scanf("%d",&a[i]); left=0; right=l; while(left<=right) { mid=(right+left)/2; now=0; s=0; for(i=1;i<=n;i++) { if(a[i]-a[now]<mid) s++; else now=i; } if(s<=m) { ans=mid; left=mid+1; } else right=mid-1; } printf("%d",ans); return 0; }