输入
输入两行数据,第一行是两个整数:路灯数目n (1≤n≤1000),街道长度l (1 ≤l≤109)。第二行有n个整数ai (0 ≤ ai≤ l),表示路灯坐标,多个路灯可以在同一个点,也可以安放在终点位置。
|
样例输入
7 15
15 5 3 7 9 14 0
|
输出
输出能够照亮整个街道的最小d,保留两位小数。
|
|
#include<iostream>
#include<iomanip>
#include<vector>
#include<algorithm>
#include<functional>
using namespace std;
double getResult(vector<int> &data,int l){
cout << setprecision(2) << setiosflags(ios::fixed);
double result = 0.0;
sort(data.begin(), data.end(), less<int>());
size_t n = data.size();
for (size_t i = 0; i < n-1; i++){
result = max(result, (data[i + 1] - data[i])/2.0);
}
result = max(result, (l - data[n-1]) / 1.0);
result = max(result, data[0]/1.0);
return result;
}
int main(){
vector<int> v;
int n, l;
cin >> n >> l;
for (int i = 0; i < n; i++){
int temp;
cin >> temp;
v.push_back(temp);
}
double result = getResult(v, l);
cout << result << endl;
}