#include<cstdio>
#include<algorithm>
const int MAX = 200001;
int N, C;
int arr[MAX];
inline int quickread() {
int x = 0, sign = 0;
char c = getchar();
while (c < '0' || c > '9') {
if ('-' == c) {
sign = 1;
}
c = getchar();
}
while ('0' <= c && c <= '9') {
x = (x << 3) + (x << 1) + (c ^ 0x30);
c = getchar();
}
return sign ? (~x + 1) : x;
}
int main()
{
long long num = 0;
N = quickread();
C = quickread();
for (int i = 0; i < N; i++)
arr[i] = quickread();
std::sort(arr, arr + N);
for (int i = 0; i < N; i++)
num += std::upper_bound(arr, arr + N, arr[i] + C) - std::lower_bound(arr, arr + N, arr[i] + C);
printf("%lld", num);
return 0;
}
洛谷P1102 A-B 数对进阶解法
最新推荐文章于 2024-07-09 16:08:07 发布