#include <iostream> #include <string> #include <vector> #include <set> #include <cmath> #include <algorithm> #include <iomanip> #include <map> #include <queue> using ll = long long; using namespace std; vector<int> A, B; int main(void) { int N; cin >> N; for (int i = 0; i < N; ++i) { int a; cin >> a; A.push_back(a); } for (int i = 0; i < N; ++i) { int b; cin >> b; B.push_back(b); } sort(A.begin(), A.end()); sort(B.begin(), B.end()); int cnt = 0; do { do { int win = 0, lose = 0; for (int i = 0; i < N; ++i) { if (A[i] > B[i]) win++; else lose++; } if (win > lose) cnt++; } while (next_permutation(A.begin(), A.end())); } while (next_permutation(B.begin(), B.end())); for (int i = N - 1; i >= 1; --i) N *= i; N *= N; cout << fixed << setprecision(3) << (double)cnt / (double)N << endl; return 0; }