#include #include using namespace std; typedef long long int64; vector a; vector b; vector fa; vector fb; int n; int64 process(int w, int ni) { if(ni == 0) { if(w > n / 2) return 1; return 0; } int64 res = 0; int bw = w; for(int i = 0; i < n; i++) { if(fa[i]) continue; fa[i] = true; for(int j = 0; j < n; j++) { if(fb[j]) continue; if(a[i] > b[j]) w++; fb[j] = true; res += process(w, ni - 1); fb[j] = false; w = bw; } fa[i] = false; } return res; } int main(void) { cin >> n; a.resize(n); b.resize(n); fa.resize(n, 0); fb.resize(n, 0); for(int i = 0; i < n; i++) cin >> a[i]; for(int i = 0; i < n; i++) cin >> b[i]; int64 p = 1; for(int i = 1; i <= n; i++) p *= i; cout << (double)process(0, n) / (p * p) << endl; return 0; }