答案只可能有两种情况 要么是已知点的距离 要么是已知点距离的一半
那么就枚举每个点之间的距离 和距离的一半
先把所有点按照升序排序 然后用枚举的值贪心
对于点A[i] 如果能放[[A[i]-now,A[i]]就放 否则就放[A[i],A[i]+now]
#include<bits/stdc++.h>
using namespace std;
double a[120],b[120];
int main()
{
int T,N;
scanf("%d",&T);
for(int i=1;i<=T;i++)
{
scanf("%d",&N);
int k=0;
for(int i=1;i<=N;i++)
scanf("%lf",&a[i]);
sort(a+1,a+N+1);
for(int i=2;i<=N;i++)
{
b[++k]=a[i]-a[i-1];
b[++k]=b[k-1]/2;
}
sort(b+1,b+k+1);
for(int i=k;i>=1;i--)
{
double x=INT_MIN*1.0;
int flag=0;
for(int j=1;j<=N;j++)
{
if(a[j]==x)
continue;
else if(a[j]-b[i]>=x)
x=a[j];
else if(a[j]>x)
x=a[j]+b[i];
else
{
flag=1;
break;
}
}
if(flag==0)
{
printf("%.3lf\n",b[i]);
break;
}
}
}
return 0;
}