codeforces 782B
来源:互联网 发布:学linux能干哪些工作 编辑:程序博客网 时间:2024/04/24 09:23
The main road in Bytecity is a straight line from south to north. Conveniently, there are coordinates measured in meters from the southernmost building in north direction.
At some points on the road there are n friends, and i-th of them is standing at the point xi meters and can move with any speed no greater than vi meters per second in any of the two directions along the road: south or north.
You are to compute the minimum time needed to gather all the n friends at some point on the road. Note that the point they meet at doesn't need to have integer coordinate.
The first line contains single integer n (2 ≤ n ≤ 60 000) — the number of friends.
The second line contains n integers x1, x2, ..., xn (1 ≤ xi ≤ 109) — the current coordinates of the friends, in meters.
The third line contains n integers v1, v2, ..., vn (1 ≤ vi ≤ 109) — the maximum speeds of the friends, in meters per second.
Print the minimum time (in seconds) needed for all the n friends to meet at some point on the road.
Your answer will be considered correct, if its absolute or relative error isn't greater than 10 - 6. Formally, let your answer be a, while jury's answer be b. Your answer will be considered correct if holds.
37 1 31 2 1
2.000000000000
45 10 3 22 3 2 4
1.400000000000
#include<cstdio>struct type{int x;int v;}p[60000+5];int n;bool check(double time){//遍历每个人在time个单位时间后能走到的位置,不断更新重叠的区间[l,r],只要到最后这个区间一人不为空,就return true double l=p[1].x-time*p[1].v;double r=p[1].x+time*p[1].v;for(int i=2;i<=n;i++){if(p[i].x-time*p[i].v > l) l=p[i].x-time*p[i].v;if(p[i].x+time*p[i].v < r) r=p[i].x+time*p[i].v;if(l>r) return false;}return true;}int main(){scanf("%d",&n);for(int i=1;i<=n;i++) scanf("%d",&p[i].x);for(int i=1;i<=n;i++) scanf("%d",&p[i].v);double st=0,ed=1000000000;while(ed-st>1e-7){double mid=st+(ed-st)/2;if(check(mid)) ed=mid;else st=mid;}printf("%.12lf\n",ed);}
- codeforces-782【B二分】
- codeforces 782B
- codeforces 782/problem/B [二分]
- Codeforces 782B 二分搜索
- codeforces B
- codeforces B
- codeforces B
- codeforces B
- codeforces 782B Round #403 Div. 2B
- CodeForces 626B CodeForces 626B【暴力】
- CodeForces 841B (B) 博弈
- codeforces 134B
- codeforces#98 b
- codeforces 105 div2 B
- Codeforces 166B - Polygons
- codeforces B. Coins
- codeforces----193B Xor
- codeforces----208B Solitaire
- 【第12题】360校园招聘2015届技术类笔试题
- Lambda&Java多核编程-5-函数式接口与function包
- POJ3709 K-Anonymous Sequence(k匿名序列)(斜率优化dp)
- PAT-练习集-L1-025. 正整数A+B
- leetcode [Sqrt(x)]
- codeforces 782B
- C语言 strnlen函数实现
- 【第13题】360校园招聘2015届技术类笔试题
- Android注解使用之ButterKnife 8.0注解使用介绍
- 【贪心算法】最少拦截系统
- 重温数据结构一
- CSS中的背景用法大全
- 【第14题】360校园招聘2015届技术类笔试题
- Java_HOME,classpath,path的作用及其配置