#include #define rep(i, n) for (int i = 0; i < (n); i++) #define rep2(i, a, b) for (int i = (a); i < (b); ++i) #define all(a) (a).begin(), (a).end() using namespace std; using ll = long long; using P = pair; const ll INF_L = 1LL << 60; const int INF_I = 1 << 30; const int MOD = (int)1e9 + 7; const double PI = acos(-1); int dx[] = {1, 0, -1, 0}; int dy[] = {0, -1, 0, 1}; int main() { int n; cin >> n; vector a(n), b(n); rep(i, n) cin >> a[i]; rep(i, n) cin >> b[i]; int num = 0, win = 0; sort(all(a)), sort(all(b)); do { do { num++; int wa = 0, wb = 0; rep(i, n) { if (a[i] < b[i]) wb++; else wa++; } if (wa > wb) win++; } while (next_permutation(all(b))); } while (next_permutation(all(a))); printf("%.10f\n", 1. * win / num); return 0; }