#include<bits/stdc++.h>
using namespace std;

#define int long long

void read(int &x) {
    x=0;int f=1;char ch=getchar();
    for(;!isdigit(ch);ch=getchar()) if(ch=='-') f=-f;
    for(;isdigit(ch);ch=getchar()) x=x*10+ch-'0';x*=f;
}

void print(int x) {
    if(x<0) putchar('-'),x=-x;
    if(!x) return ;print(x/10),putchar(x%10+48);
}
void write(int x) {if(!x) putchar('0');else print(x);putchar('\n');}

#define lf long double
#define ll long long 

#define pii pair<int,int >
#define vec vector<int >

#define pb push_back
#define mp make_pair
#define fr first
#define sc second

#define data asd09123jdf02i3h

#define FOR(i,l,r) for(int i=l,i##_r=r;i<=i##_r;i++)

const int maxn = 1e6+10;
const int inf = 1e9;
const lf eps = 1e-8;
const int mod = 1e9+7;

int n,a[maxn],b[maxn],t[maxn],c[maxn],sta[maxn],top;

signed main() {
    read(n);int mx=0,p=1;
    for(int i=1;i<=n;i++) {
        read(a[i]);
        if(a[i]>mx) mx=a[i],p=i;
    }
    for(int i=1;i<=n;i++) read(b[i]);
    
    for(int i=p;i<=n;i++) t[i-p]=a[i];
    for(int i=1;i<=p;i++) t[i+n-p]=a[i];
    for(int i=0;i<=n;i++) a[i]=t[i];
    for(int i=p;i<=n;i++) t[i-p]=b[i];
    for(int i=1;i<=p;i++) t[i+n-p]=b[i];
    for(int i=0;i<=n;i++) b[i]=t[i];

    // for(int i=0;i<=n;i++) printf("%lld ",a[i]);puts("");
    for(int i=2;i<=n;i++) c[i]=2*(c[i-1]+b[i-1])-c[i-2],a[i]-=c[i];
    // for(int i=0;i<=n;i++) printf("%lld ",c[i]);puts("");
    // for(int i=0;i<=n;i++) printf("%lld ",a[i]);puts("");
    lf ans=0;
    for(int i=0;i<=n;i++) {
        while(top>1&&1.0*(a[i]-a[sta[top]])/(i-sta[top])>=1.0*(a[sta[top]]-a[sta[top-1]])/(sta[top]-sta[top-1])) top--;
        sta[++top]=i;
    }
    // for(int i=1;i<=top;i++) write(sta[i]);
    for(int i=2;i<=top;i++) 
        for(int j=sta[i-1];j<sta[i];j++)
            ans+=a[sta[i-1]]+1.0*(a[sta[i]]-a[sta[i-1]])/(sta[i]-sta[i-1])*(j-sta[i-1]);
    for(int i=0;i<n;i++) ans+=c[i];
    ans/=n;
    printf("%.12Lf\n",ans);
    return 0;
}
