92分!就差一点了!!
  • 板块P1102 A-B 数对
  • 楼主LukeSu
  • 当前回复4
  • 已保存回复4
  • 发布时间2022/4/2 17:00
  • 上次更新2023/10/28 04:51:25
查看原帖
92分!就差一点了!!
593753
LukeSu楼主2022/4/2 17:00
#include<bits/stdc++.h>
using namespace std;
#define int unsigned long long
int a[111111111];

signed main(){
	cin.tie(0)->sync_with_stdio(false);
	int N, C, ans1 = 0, ans2 = 0, res = 0;
	cin >> N >> C;
	for(int i = 1; i <= N; i++){
		cin >> a[i];
	} 
	sort(a + 1, a + N + 1);
	for(int i = 1; i <= N; i++){
		int l = i + 1, r = N;
		while(l < r){
			int mid = l + r + 1 >> 1;
			if(a[mid] <= a[i] + C) l = mid;
			else r = mid - 1;
		}
		ans1 = r;
		l = i + 1, r = N; 
		while(l < r){
			int mid = l + r + 1 >> 1;
			if(a[mid] < a[i] + C) l = mid;
			else r = mid - 1;
		}
		ans2 = r;
		res += (ans1 - ans2);
	}
	cout << res;
	
	return 0;
}
2022/4/2 17:00
加载中...