#include<bits/stdc++.h>
#define Rint register int
#define MP make_pair
#define fi first
#define se second
#define PB push_back
using namespace std;
typedef long long LL;
typedef long double LD;
typedef pair<int, int> pii;
const int N = 200003, mod = 998244353;
template<typename T>
void read(T &x){
	int ch = getchar(); x = 0; bool f = false;
	for(;ch < '0' || ch > '9';ch = getchar()) f |= ch == '-';
	for(;ch >= '0' && ch <= '9';ch = getchar()) x = x * 10 + ch - '0';
	if(f) x = -x;
}
void qmo(int &x){x += (x >> 31) & mod;}
int ksm(int a, int b){
	int res = 1;
	for(;b;b >>= 1, a = (LL) a * a % mod) if(b & 1) res = (LL) res * a % mod;
	return res;
}
template<typename T>
inline bool chmax(T &a, const T &b){if(a < b) return a = b, 1; return 0;}
template<typename T>
inline bool chmin(T &a, const T &b){if(a > b) return a = b, 1; return 0;}
int n, p, stk[N], top;
LL a[N], b[N], aa[N], bb[N], c[N];
LD ans;
int main(){
	read(n);
	for(Rint i = 0;i < n;++ i){read(aa[i]); if(aa[p] < aa[i]) p = i;}
	for(Rint i = 0;i < n;++ i) read(bb[i]);
	for(Rint i = p;i < n;++ i){a[i-p] = aa[i]; b[i-p] = bb[i];}
	for(Rint i = 0;i <= p;++ i){a[i+n-p] = aa[i]; b[i+n-p] = bb[i];}
	for(Rint i = 1;i < n;++ i) c[i+1] = 2 * (c[i] - b[i]) - c[i-1];
	stk[0] = 0; stk[1] = 1; top = 1;
	for(Rint i = 2;i <= n;++ i){
		a[i] += c[i];
		while(top){
			LL x1 = stk[top] - stk[top-1], x2 = i - stk[top-1], y1 = a[stk[top]] - a[stk[top-1]], y2 = a[i] - a[stk[top-1]];
			if(x1 * y2 - x2 * y1 >= 0) -- top; else break;
		}
		stk[++ top] = i;
	}
	for(Rint i = 0;i < top;++ i) ans += (LD) (a[stk[i]] + a[stk[i+1]]) * (stk[i+1] - stk[i] + 1) / 2 - a[stk[i]];
	for(Rint i = 2;i <= n;++ i) ans -= c[i];
	printf("%.10Lf\n", ans / n);
}