#include<iostream>
#include<cstdio>
#include<vector>
using namespace std;
int num;
struct node{
int x;
int v;
};
double min (double x, double y) {
return x < y ? x : y;
}
double max (double x, double y) {
return x > y ? x : y;
}
node arr[60005];
int check(double m)
{
double l=-2e9,r=2e9;
for(int i=0;i<num;i++)
{
l=max(l,arr[i].x-arr[i].v*m);
r=min(r,arr[i].x+arr[i].v*m);
}
return l<=r;
}
int main()
{
cin>>num;
for(int i=0;i<num;i++)
scanf("%d",&arr[i].x);
for(int i=0;i<num;i++)
scanf("%d",&arr[i].v);
double l=0,r=1e9;
while(r-l>1e-9){
double m=(l*1.0+r)/2;
if(check(m))
r=m;else l=m;
}
printf("%.9lf\n", (l + r)/2);
return 0;
}
B The Meeting Place Cannot Be Changed
最新推荐文章于 2018-03-07 22:16:34 发布