#include<bits/stdc++.h>
using namespace std;
int q[200010];
int n,c,ans = 0;
inline int read()
{
int x=0;
char c=getchar();
for(; c<'0' || c>'9'; c=getchar());
for(; c<='9' && c>='0'; c=getchar())
x=(x<<3)+(x<<1)+c-'0';
return x;
}
int main()
{
n = read(); c = read();
for (int i = 1; i <= n; i ++)
q[i] = read();
sort(q + 1, q + n + 1);
for (int i = 1;i <= n; i ++)
{
int l = i, r = n;
while(l < r)
{
int mid = l + r >> 1;
if (q[mid] - q[i] >= c) r = mid;
else l = mid + 1;
}
if (q[l] - q[i] == c)
{
int j = l, w = 1;
while(q[++j] == q[l]) w ++;
ans += w;
}
}
cout << ans;
return 0;
}
大佬们怎么搞啊,位运算和快读还有O2都开了,#3还是1.2s