#define _GLIBCXX_DEBUG #include using namespace std; #define rep(i, n) for (int i = 0; i < (int)(n); i++) #define all(v) v.begin(), v.end() typedef pair P; const int INF = 1001001001; const vector di = {-1, 0, 1, 0}; const vector dj = {0, -1, 0, 1}; int n; vector card_a; vector card_b; int main() { cin >> n; card_a.resize(n); card_b.resize(n); rep(i, n) { cin >> card_a[i]; } rep(i, n) { cin >> card_b[i]; } sort(all(card_a)); sort(all(card_b)); double cnt = 0; double total = 0; do { do { total++; int vic_a = 0; int vic_b = 0; rep(i, n) { if (card_a[i] > card_b[i]) { vic_a++; } else if (card_a[i] < card_b[i]) { vic_b++; } } if (vic_a > vic_b) { cnt++; } } while (next_permutation(all(card_b))); } while (next_permutation(all(card_a))); printf("%f\n", cnt / total); }