博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
codeforces B. The Meeting Place Cannot Be Changed【二分】
阅读量:5711 次
发布时间:2019-06-17

本文共 3070 字,大约阅读时间需要 10 分钟。

time limit per test
5 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output

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.

Input

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.

Output

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.

 

Examples
input
37 1 31 2 1
output
2.000000000000
input
45 10 3 22 3 2 4
output
1.400000000000
Note

In the first sample, all friends can gather at the point 5 within 2 seconds. In order to achieve this, the first friend should go south all the time at his maximum speed, while the second and the third friends should go north at their maximum speeds.

比较通俗的二分方法,但是因为判断哪里我有个位置放反了,导致测试数据出错,然后zz的以为是精度的问题,开大精度导致system testing的时候TLE。zz啊!

 

 
#include #include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
//#include
//#define LOACL#define space " "using namespace std;//typedef long long LL;//typedef __int64 Int;typedef pair
PAI;const int INF = 0x3f3f3f3f;const double ESP = 1e-6;const double PI = acos(-1.0);const int MOD = 1e9 + 7;const int MAXN = 60000 + 10;double v[MAXN], ar[MAXN];int N;bool judge(long double t) { long double r = ar[0] + v[0]*t; long double l = ar[0] - v[0]*t; for (int i = 1; i < N; i++) { long double tr = ar[i] + v[i]*t; long double tl = ar[i] - v[i]*t; if (tl <= l && tr >= r) continue; else if (tl >= l && tr <= r) {l = tl; r = tr;} else if (tl <= l && l <= tr) {l = l; r = tr;} else if (l <= tl && r >= tl) {l = tl; r = r;} else return false; } return true;}int main() { while (scanf("%d", &N) != EOF) { for (int i = 0; i < N; i++) scanf("%d", &ar[i]); for (int i = 0; i < N; i++) scanf("%d", &v[i]); double ub = 1e9, lb = 0; double ans = 0; while (abs(ub - lb) > ESP) { long double mid = (lb + ub)/2; if (judge(mid)) { ans = mid; ub = mid; } else lb = mid; } printf("%.7lf\n", ans); } return 0;}

 

 

 

转载于:https://www.cnblogs.com/cniwoq/p/6770746.html

你可能感兴趣的文章
《Ext JS模板与组件基本框架图----组件》
查看>>
英特尔收购人工智能创业公司Nervana
查看>>
新华三H3C服务器安装系统问题
查看>>
Java8-Collect收集Stream
查看>>
消除windows下的PyCharm中满屏的波浪线
查看>>
大数据学习资源最全版本(收藏)
查看>>
“水泊梁山“互联网有限公司一百单八将内部社交网络
查看>>
关于AI,程序员需要了解这些!
查看>>
spring+springmvc+mybatis构建系统
查看>>
Java并发编程笔记之ReentrantLock源码分析
查看>>
node_acl 权限管理路径通配
查看>>
Android重写onConfigurationChanged规避横竖屏切换时候重新进入onCreate生命周期
查看>>
图文分析ByteBuf是什么
查看>>
jsp的C标签一般使用方法以及js接收servlet中的对象及对象数字
查看>>
Locust---用蝗虫写压测,感觉比用AB要cool哈
查看>>
利用太赫兹助力超高速WiFi的研发,比现有技术快100倍
查看>>
linux中三个时间
查看>>
Linux服务管理之NTP服务器配置
查看>>
PHP开发经验总结
查看>>
【总结】Kylin创建Cube,以及优化
查看>>