在CF上提交,总是被卡第9个点。
(傻口二分)
是有什么特殊情况吗(特意加了精度,还是WA)
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N = 1010;
const double esp = 1e-9;
int n;
double l,a[N];
bool check(double len){
double now=0;
for(int i=1;i<=n;i++){
if(a[i]-len<=now){
now=a[i]+len;
}
else return false;
}
if(now>=len)return true;
else return false;
}
int main(){
cin>>n>>l;
for(int i=1;i<=n;i++){
cin>>a[i];
}
sort(a+1,a+n+1);
double left=0,right=l;
while(right-left>esp){
double mid=(left+right)/2;
if(check(mid))right=mid;
else left=mid;
}
printf("%.10lf",left);
}