路灯
来源:互联网 发布:人工智能研发工程师 编辑:程序博客网 时间:2024/04/28 22:21
题目描述V先生有一天工作到很晚,回家的时候要穿过一条长l的笔直的街道,这条街道上有n个路灯。假设这条街起点为0,终点为l,第i个路灯坐标为ai。路灯发光能力以正数d来衡量,其中d表示路灯能够照亮的街道上的点与路灯的最远距离,所有路灯发光能力相同。为了让V先生看清回家的路,路灯必须照亮整条街道,又为了节省电力希望找到最小的d是多少?
输入
输入两行数据,第一行是两个整数:路灯数目n (1≤n≤1000),街道长度l (1 ≤l≤109)。第二行有n个整数ai (0 ≤ ai≤ l),表示路灯坐标,多个路灯可以在同一个点,也可以安放在终点位置。
输出输出能够照亮整个街道的最小d,保留两位小数。
样例输入7 15
15 5 3 7 9 14 0
样例输出2.50
#include <iostream>#include <algorithm>using namespace std;class streetlight {public:int loc; //路灯的位置 int num; //该位置路灯数量 };int main(){streetlight strl[1000];//整理后路灯位置和数量数组 int loc[1000];//路灯位置数组int l, n; //道路长度,路灯总数int j = 0; //记录整理后路灯位置数double d; //d的值 cin >> n >> l;for (int i = 0; i<n; i++){cin >> loc[i];}sort(loc, loc + n);for (int i = 0; i<n; i++){if (i == 0){strl[j].loc = loc[i];strl[j].num = 1;j++;}else if (strl[j - 1].loc == loc[i]){strl[j - 1].num++;}else{strl[j].loc = loc[i];strl[j].num = 1;j++;}}for (int i = 0; i <= j; i++){double temp;if (i == 0){d = strl[i].loc / strl[i].num;}else{if (i == j)temp = (double)(l - strl[i - 1].loc) / strl[i - 1].num;elsetemp = (double)(strl[i].loc - strl[i - 1].loc) / (strl[i].num + strl[i - 1].num);if (temp>d)d = temp;}}printf("%.2f", d);system("pause");return 0;}
0 0
- 路灯
- 路灯
- 路灯
- 路灯
- 路灯
- 路灯
- 路灯
- 路灯
- 路灯
- 路灯&雪
- 关路灯
- 关路灯
- 路灯 - java
- GPRS与路灯监控
- 智能路灯管理
- 模拟路灯控制系统.C
- 橘黄的路灯
- 无线智能路灯监控
- Linux系统无线网络抓包程序(分析手机WIFI MAC地址)
- 如何设置或改变Linux的主机名
- POJ 2785 4 Values whose Sum is 0(二分法)
- Codeforces Round #378 (Div. 2)
- js中apply、call和bind的区别
- 路灯
- java读取文件几种方式
- UVa - 10278 Fire Station 消防站 图上的多源最短路径
- 秒杀系统架构要素
- 编译原理语法分析器
- Linux errno 错误对照表
- 看看大牛们是怎样获得英文综述(reviews)的?(干细胞论坛)
- Android系统中预设了的一些主题模式
- Linux添加新硬盘自动挂载硬盘的具体步骤