#include <iostream> #include<vector> #include<algorithm> #include<iomanip> using namespace std; /*解题思路:用vector容器存储路灯的坐标并排序, 计算路灯间距离的一半以及最左、最右侧路灯与边界的距离, 照明最短距离为三者中的最大值 注意:输出时保留两位小数可以使用 <iomanip> 头文件中的 fixed控制浮点数的输出格式 以及setprecision(n)来控制小数位数。*/ int main() { int n,I; while (cin>>n>>I) { vector<int>v(n); for(int i=0;i<n;i++) cin>>v[i]; sort(v.begin(),v.end()); double maxGap =0; for(int i =0;i<n-1;i++){ maxGap = max(maxGap,(double)v[i+1]-v[i]); //计算路灯之间的最大距离 } double leftGap = v[0]; //最左侧路灯到边界的距离 double rightGap = I - v[n-1]; //最右侧路灯到边界的距离 double minGap = max(maxGap/2,max(leftGap,rightGap)); //计算路灯最短照明距离 cout<<fixed<<setprecision(2)<<minGap<<endl; } return 0; } // 64 位输出请用 printf("%lld")