所以为何第四个点RE了??
查看原帖
所以为何第四个点RE了??
1058596
DeepNight_楼主2024/7/23 17:57
#include <bits/stdc++.h>
#define ll long long

using namespace std;

const ll N =6000010;
ll n, m, a[N], ans, tj[N], dx, b[N];

void init()
{
	for(int i = 0; i < n;i ++) tj[a[i]]++;
	for(int i = 1; i <= a[n-1] ; i ++) {
		if(tj[i] > 0) b[dx] = i, dx ++;
	}
}

int main(){
	cin >> n >> m;
	memset(tj, 0, sizeof(tj));
	for(ll i = 0 ;i < n;i ++) cin>>a[i];
	sort(a, a + n);
	init();
	
	for(ll i = 0; i < dx;i ++){
		ll j = dx - 1;
		while(j > i && b[j] - b[i] > m) j --;
		if(b[j] - b[i] == m) ans += tj[b[j]]*tj[b[i]];
	}
	cout << ans;
}
2024/7/23 17:57
加载中...