#include #include #include #include using namespace std; int main() { int N; cin >> N; vector A(N), B(N), ord(N); // 输入数据 for (int i = 0; i < N; ++i) { cin >> A[i]; } for (int i = 0; i < N; ++i) { cin >> B[i]; } // 初始化排列 iota(ord.begin(), ord.end(), 0); int cnt = 0, a_cnt = 0; // 枚举所有排列 do { int a_win = 0, b_win = 0; // 比较每种排列的结果 for (int i = 0; i < N; ++i) { if (A[ord[i]] > B[i]) { ++a_win; } if (B[ord[i]] < B[i]) { ++b_win; } } // 统计 A 胜利的情况 if (a_win > b_win) { ++a_cnt; } ++cnt; } while (next_permutation(ord.begin(), ord.end())); // 输出最终结果 cout << static_cast(a_cnt) / cnt << endl; return 0; }