https://www.acwing.com/problem/content/description/1238/
二分法,请问各位大佬哪里写错了
3
4 1 5
9 5 5
7 6 4
这个是过不去的测试用例
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 1e5 + 10;
int a[N], b[N], c[N];
int main()
{
int n; cin >> n;
for (int i = 0; i < n; ++ i) scanf("%d", &a[i]);
for (int i = 0; i < n; ++ i) scanf("%d", &b[i]);
for (int i = 0; i < n; ++ i) scanf("%d", &c[i]);
sort(a, a + n);
sort(c, c + n);
long long res = 0;
int x;
for (int i = 0; i < n; ++ i)
{
x = 0;
int l = 0, r = n - 1;
while (l < r)
{
int mid = l + r + 1>> 1;
if (a[mid] <= b[i]) l = mid;
else r = mid - 1;
}
if (a[l] < b[i]) x = (long long ) l + 1;
l = 0, r = n - 1;
while (l < r)
{
int mid = l + r >> 1;
if (c[mid] >= b[i]) r = mid;
else l = mid + 1;
}
if (c[r] > b[i]) x *= (long long) n - l;
res += x;
}
cout << res;
return 0;
}