预处理
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 1e6;
int a[N], b[N], c[N];
ll s[N];
int main()
{
int n;
cin >> n;
for(int i = 1; i <= n; i ++ )
scanf("%d", &a[i]);
for(int i = 1; i <= n; i ++ )
scanf("%d", &b[i]);
for(int i = 1; i <= n; i ++ )
scanf("%d", &c[i]);
sort(a + 1, a + n + 1);
sort(b + 1, b + n + 1);
sort(c + 1, c + n + 1);
for(int i = n; i >= 1; i -- )
{
int x = upper_bound(c + 1, c + n + 1, b[i]) - c;
if(x != n + 1) s[i] = s[i + 1] + n - x + 1;
}
ll ans = 0;
for(int i = 1; i <= n; i ++ )
{
int x = upper_bound(b + 1, b + n + 1, a[i]) - b;
if(x != n + 1) ans += s[x];
}
cout << ans;
}