#include <iostream>
#include <algorithm>
using namespace std;
int a[200001], b[200001], cnt[200001];
int main()
{
int t;
cin >> t;
while (t--)
{
for (int i = 0; i < 200000; ++i)
{
cnt[i] = 0;
}
int n;
cin >> n;
for (int i = 0; i < n; ++i)
{
cin >> a[i];
}
for (int i = 0; i < n; ++i)
{
cin >> b[i];
}
sort(a, a + n);
sort(b, b + n);
int num = 0;
for (int i = 0; i < n; ++i)
{
for (int j = num; j < n; ++j)
{
if (a[i] > b[j])
{
cnt[i] += 1;
num += 1;
}
}
cnt[i] += cnt[i - 1];
}
int ans = 1;
for (int i = 0; i < n; ++i)
{
ans *= cnt[i] - i;
}
cout << ans << endl;
}
return 0;
}
我方法用的是乘法原理,为什么会错?