2、3TLE了,求大佬看看代码有啥问题。
#include <algorithm>
#include <iostream>
#define ll long long
using namespace std;
ll a[2000005];
int main() {
int N;
ll C;
cin >> N >> C;
for (int i = 0; i < N; i++) {
cin >> a[i];
}
sort(a, a + N, greater<ll>());
int cnt = 0;
for (int i = 0; i < N; i++) {
ll* index = a + 1 + i;
ll B = a[i] - C;
while (lower_bound(index, a + N, B, greater<ll>()) != a + N &&
a[lower_bound(index, a + N, B, greater<ll>()) - a] == B) {
cnt++;
index = lower_bound(index, a + N, B, greater<ll>()) + 1;
}
}
cout << cnt;
return 0;
}