P1102 A-B 数对
题目来源-洛谷题库
思路:
- 暴力不现实,类似A+B问题,直接二分处理
- 注意数据约束,数据比较大,哪怕时int涉及加法、乘法保险起见可以用long long
- 参考代码
#include <bits/stdc++.h>
using namespace std;
const int N = 200010;
typedef long long ll;
ll a[N];
ll n, c;
ll result = 0;
int main() {cin >> n >> c;for (int i = 1; i <= n; i++) {scanf("%d", &a[i]);}sort(a + 1, a + n + 1);for (int i = 1; i <= n; i++) {result += upper_bound(a + 1, a + n + 1, a[i] + c) - lower_bound(a + 1, a + n + 1, a[i] + c);}cout << result << endl;return 0;
}