#include #include #include #include #include #include #include #include #include #include #include #include #define REP(i, n) for(int i = 0;i < n;i++) #define REPR(i, n) for(int i = n;i >= 0;i--) #define FOR(i, m, n) for(int i = m;i < n;i++) #define FORR(i, m, n) for(int i = m;i >= n;i--) #define SORT(v, n) sort(v, v+n); #define VSORT(v) sort(v.begin(), v.end()); #define llong long long #define pb(a) push_back(a) //#define INF ((LLONG_MAX) / (2)) using namespace std; typedef pair P; typedef pair LP; typedef pair PP; typedef pair LPP; typedef long long int ll; typedef pair LL_IP; typedef pair LL_LLP; #define INF 1e9+7 #define ARRAY_MAX 100005 int main(){ int n; cin >> n; int total = 0; vector a(n),b(n); REP(i,n){ cin >> a[i]; } REP(i,n){ cin >> b[i]; } VSORT(a); VSORT(b); int times = 0; int p = 0; do{ do{ total++; int a_win = 0; int b_win = 0; REP(i,n){ if(a[i] > b[i]){ a_win++; }else{ b_win++; } } if(a_win > b_win){ times++; } }while(next_permutation(b.begin(),b.end())); }while(next_permutation(a.begin(),a.end())); double ans = times/(double)total; printf("%.5f\n",ans); return 0; }