int n; constint N = 100010; int a[3][N]; int b1[N]; int b2[N]; int c1[N]; int c2[N]; longlong res;
intmain() { cin >> n; for (int i = 0; i < 3; i++) { for (int j = 1; j <= n; j++) cin >> a[i][j]; }
for (int i = 1; i <= n; i++) { b1[a[0][i]]++; b2[a[2][i]]++; } c1[0] = b1[0]; c2[0] = b2[0]; for (int i = 1; i <=N-1; i++) { c1[i] = b1[i] + c1[i - 1]; c2[i] = b2[i] + c2[i - 1]; }
for (int i = 1; i <= n; i++) { int temp=a[1][i]; //这个地方卡了好久,不加long long过不了:在这个特定的例子中, // 假设 c1 和 c2 是整数数组,temp 和 N 是整数变量,res 是一个 long long // c1 和 c2 中的元素是 int 类型,而 res 是 long long 类型,那么进行乘法运算时, // 可能需要将 int 类型的乘积累极转换为 long long 类型, // 以避免可能的整数溢出或者确保结果的准确性。 res += (longlong)c1[temp - 1] * (c2[N-1]-c2[temp]); }