Codeforces 492B B. Vanya and Lanterns
Codeforces 492B B. Vanya and Lanterns
题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=86640#problem/B
题目:
Description
Vanya walks late at night along a straight street of length l, lit by n lanterns. Consider the coordinate system with the beginning of the street corresponding to the point 0, and its end corresponding to the point l. Then the i-th lantern is at the point ai. The lantern lights all points of the street that are at the distance of at most d from it, where d is some positive number, common for all lanterns.
Vanya wonders: what is the minimum light radius d should the lanterns have to light the whole street?
Input
The first line contains two integers n, l (1 ≤ n ≤ 1000, 1 ≤ l ≤ 109) — the number of lanterns and the length of the street respectively.
The next line contains n integers ai (0 ≤ ai ≤ l). Multiple lanterns can be located at the same point. The lanterns may be located at the ends of the street.
Output
Print the minimum light radius d, needed to light the whole street. The answer will be considered correct if its absolute or relative error doesn't exceed 10 - 9.
Sample Input
7 15 15 5 3 7 9 14 0
2.5000000000
2 5 2 5
2.0000000000
Sample Output
Hint
Consider the second sample. At d = 2 the first lantern will light the segment [0, 4] of the street, and the second lantern will light segment [3, 5]. Thus, the whole street will be lit.
题意:
N盏灯照亮长度为L的街道,使整条街全部被照亮。求灯的最少照亮半径。
分析:
1.将灯的位置排序,先求出相邻两盏灯之间的最大距离,最大距离是每盏灯所照的最大半径的两倍
2.再求第一盏灯到街首的距离和街尾到最后一盏灯的距离
3.比较三个距离的长度,最大值即为所求
代码:
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
;
int a[maxn];
int max(int x,int y)
{
return x>y?x:y;
}
int main()
{
int n,l;
scanf("%d%d",&n,&l);
;i<=n;i++)
{
scanf("%d",&a[i]);
}
sort(a+,a+n+); //将灯的位置从小到大排序
a[]=; //街首
a[n+]=l; //街尾
;
]-a[],xx=a[n+]-a[n]; //首尾两盏灯到街首和街尾的距离
;j<n;j++) //两盏灯之间的最大距离
{
a[j]=a[j+]-a[j];
if(a[j]>m)
m=a[j];
}
m=max(*b,max(m,*xx)); //求灯照射的最大直径
double ans=m/2.0;
printf("%.10lf\n",ans);
;
}
昨天写题目的时候没有写max函数,提交后WA了,所以这次看完题目知道要比较大小,就先写了一个max函数。
Codeforces 492B B. Vanya and Lanterns的更多相关文章
- cf492B Vanya and Lanterns
B. Vanya and Lanterns time limit per test 1 second memory limit per test 256 megabytes input standar ...
- codeforces 492B. Vanya and Lanterns 解题报告
题目链接:http://codeforces.com/problemset/problem/492/B #include <cstdio> #include <cstdlib> ...
- codeforces 677C C. Vanya and Label(组合数学+快速幂)
题目链接: C. Vanya and Label time limit per test 1 second memory limit per test 256 megabytes input stan ...
- CodeForces 492B
Description Vanya walks late at night along a straight street of length l, lit by n lanterns. Consid ...
- Vanya and Lanterns
Description Vanya walks late at night along a straight street of length l, lit by n lanterns. Consid ...
- 【39.29%】【codeforces 552E】Vanya and Brackets
time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...
- 【25.33%】【codeforces 552D】Vanya and Triangles
time limit per test4 seconds memory limit per test512 megabytes inputstandard input outputstandard o ...
- 【30.23%】【codeforces 552C】Vanya and Scales
time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...
- 【33.33%】【codeforces 552B】Vanya and Books
time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...
随机推荐
- svn添加强制注释,pre-commit结合python
鉴于组内有些人在提交代码的时候并不写注释,而且没有固定格式,所以准备给svn提交时增加强制注释. 首先找到代码库里的hooks目录,正常建svn库的时候都有这个目录.进入hooks目录,找到pre-c ...
- 数字运算、ASCII
num20 = dollar/20;num10 = (dollar - 20*num20)/10;num5 =(dollar-20*num20-10*num10)/5;//可以写为num5 = (do ...
- 字符串-06. IP地址转换
/* * Main.c * D6-字符串-06. IP地址转换 * Created on: 2014年8月19日 *******测试通过******** *转载:http://blog.csdn.ne ...
- 一个失败的操作系统MULTICS
Unix的诞生和Multics(Multiplexed Information and Computing System)是有一定渊源的.当时开发者Brian Kernighan开玩笑地戏称这个不完善 ...
- What do `?i` and `?-i` in regex mean?
http://stackoverflow.com/questions/15145659/what-do-i-and-i-in-regex-mean
- 激活工具 – Microsoft Toolkit 2.4.7
Microsoft Toolkit是一款很出名的Windows/Office激活工具,最早是因为激活Office 2010出名的,想必不少人也用过吧?Microsoft Toolkit从2.4.1版本 ...
- Dijkstra算法模拟讲解
dijkstra算法,是一个求单源最短路径算法 其算法的特点为: 层层逼进,有点类似宽度搜索的感觉 其需要的数据结构为: int map[N][N] 所有点之间的权表 ...
- 如何打开Nib文件
作者:ani_di 版权所有,转载务必保留此链接 http://blog.csdn.net/ani_di # 如何打开Nib文件 有段时间没有灌水,今天分享一个小技巧. nib文件是Cocoa Ap ...
- j2se总结
j2se总结 经过一周多的时间完成了j2se基础的学习,个人感觉最大的收获不是对j2se的语法了解了多少,而是对面向对象的认识再一次加深了.面向对象,让类和对象成为一切. 下边是对j2se的一部分的总 ...
- 全面理解js面向对象
前言 当今 JavaScript 大行其道,各种应用对其依赖日深.web 程序员已逐渐习惯使用各种优秀的 JavaScript 框架快速开发 Web 应用,从而忽略了对原生 JavaScript 的学 ...