#include using namespace std; template inline T gcd(T a, T b) { return __gcd(a, b); } template inline T lcm(T a, T b) { return a / gcd(a, b) * b; } template inline T floor(T a, T b) { return a / b * b <= a ? a / b : a / b - 1; } template inline T ceil(T a, T b) { return floor(a + b - 1, b); } template inline T round(T a, T b) { return floor(a + b / 2); } template inline T mod(T a, T b) { return a - floor(a, b) * b; } template inline T factorial(T n) { return n <= 1 ? 1 : factorial(n - 1) * n; } int main() { int n; cin >> n; vector a(n), b(n); for (int& i : a) cin >> i; for (int& i : b) cin >> i; sort(a.begin(), a.end()); sort(b.begin(), b.end()); int c = 0; do { do { int r = 0; for (int i = 0; i < n; ++i) { if (a[i] > b[i]) ++r; if (a[i] < b[i]) --r; } if (r > 0) ++c; } while (next_permutation(b.begin(), b.end())); } while (next_permutation(a.begin(), a.end())); cout << fixed << setprecision(15) << c / pow(factorial(n), 2); }