#include using namespace std; using pii = pair; template using v = vector; template using vv = v>; #define pb push_back #define pob pop_back #define eb emplace_back #define mp make_pair #define fi first #define se second #define mt make_tuple #define p_queue priority_queue #define rev reverse #define sz(x) (int)(x).size() #define reps(i, m, n) for (int i = m; i < (int)(n); i++) #define rreps(i, m, n) for (int i = m-1; i >= (int)(n); i--) #define rep(i, n) reps(i, 0, n) #define rrep(i, n) rreps(i, n, 0) #define all(v) v.begin(), v.end() #define rall(v) v.rbegin(), v.rend() #define alls(v, l, r) v.begin()+ l, v.begin()+ r #define ralls(v, l, r) v.rbegin() + l, v.rbegin() + r #define fix(n) fixed << setprecision(n) #define pcnt(i) __builtin_popcountll((ll)i) const int MOD = 1000000007; v dy = {0, 1, 0, -1}, dx = {1, 0, -1, 0}; int main() { ios::sync_with_stdio(false); cin.tie(0); int n; cin >> n; v a(n), b(n); rep(i, n) cin >> a[i]; rep(i, n) cin >> b[i]; int bunbo = 0; double bunsi = 0; sort(all(a)); sort(all(b)); do { do { int cnt = 0; rep(i, n) if (a[i] > b[i]) cnt++; if (cnt >= (n+2)/2) bunsi++; bunbo++; } while (next_permutation(all(b))); } while (next_permutation(all(a))); double ans = bunsi / bunbo; cout << ans << endl; return 0; }