测试点2,3TLE
#include<bits/stdc++.h>
using namespace std;
const int p=1000003,maxn=2*1e5+5;
long long a[maxn],nxt[maxn],hd[p],cnt=0;
inline void insert(const long long k){
a[++cnt]=k;
nxt[cnt]=hd[k%p];
hd[k%p]=cnt;
}
inline int query(const long long k){
int r=k%p,res=0;
for(int i=hd[r];i;i=nxt[i])
if(a[i]==k)++res;
return res;
}
int main(){
int n,c;
scanf("%d%d",&n,&c);
for(int i=1;i<=n;++i){
long long u;
scanf("%lld",&u);
insert(u);
}
int ans=0;
for(int i=1;i<=n;++i){
ans+=query(a[i]+c);
}
printf("%d",ans);
return 0;
}