一条长l的笔直的街道上有n个路灯,若这条街的起点为0,终点为l,第i个路灯坐标为ai ,每盏灯可以覆盖到的最远距离为d,为了照明需求,所有灯的灯光必须覆盖整条街,但是为了省电,要使这个d最小,请找到这个最小的d。
#include<stdio.h>
int main()
{
long n,i,j;long a[1000],temp;long l;double temp2,temp3,temp4;
while(scanf("%ld %ld\n",&n,&l)==2)
{for(i=0;i<n;i++)
{
//if(i==n-1) {scanf("%ld\n",&a[i]);}
//else {scanf("%ld ",&a[i]);}
scanf("%ld ",&a[i]);
}
for (i=0;i<n-1;i++)
{
for (j=i+1;j<n;j++)
{
if(a[i]>a[j])
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
temp2 = (a[0] - 0)*2;
temp3 = (l - a[n-1])*2;
for (i=1;i<n;i++)
{
if(temp2<a[i]-a[i-1]){temp2 = a[i]-a[i-1];}
}
if (temp2<temp3) {temp2 = temp3;}
printf("%.2f\n",(temp2/2));
}
return 0;
}