#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <float.h>
int calculateMaxTime(int n,int x[],int t[],double pos){
double maxTime=0.0;
for(int i=0;i<n;i++){
double currentTime=t[i]+fabs(pos-x[i]);
if(currentTime>maxTime){
maxTime=currentTime;
}
}
return maxTime;
}
int main(){
int n;
scanf("%d",&n);
int x[100000],t[100000];
int minX=1e9,maxX=-1;
for(int i=0;i<n;i++){
scanf("%d",&x[i]);
if(x[i]<minX)minX=x[i];
if(x[i]>maxX)maxX=x[i];
}
for(int i=0;i<n;i++){
scanf("%d",&t[i]);
}
double left=minX;
double right=maxX;
for(int iter=0;iter<100;iter++){
if(right-left<1e-6)break;
double mid1=left+(right-left)/3;
double mid2=right-(right-left)/3;
double time1=calculateMaxTime(n,x,t,mid1);
double time2=calculateMaxTime(n,x,t,mid2);
if(time1<time2){
right=mid2;
}
else{
left=mid1;
}
}
double bestpos=(left+right)/2;
printf("%.1f\n",bestpos);
return 0;
}