#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; int score1 = 0, score2 = 0; long long MOD = 1000000007; vector a; vector b; vector check; void dfs(int x, int s1, int s2) { if (x == (int)a.size()) { if (s1 > s2) score1++; else score2++; } for (int i = 0; i < (int)b.size(); i++) { if (check[i]) continue; check[i] = true; if (a[x] > b[i]) dfs(x+1, s1+1, s2); else dfs(x+1, s1, s2+1); check[i] = false; } } int main() { int n; cin >> n; a = vector(n); b = vector(n); for (int i = 0; i < n; i++) cin >> a[i]; for (int i = 0; i < n; i++) cin >> b[i]; check = vector(n, false); dfs(0, 0, 0); cout << (double)score1 / (score1+score2) << endl; }