悬棺,求调!!!WA#3
查看原帖
悬棺,求调!!!WA#3
697527
zengbaolin楼主2024/11/26 22:20
#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<map>
using namespace std;
long long n[200009];
map<long long,long long>xy;
long long m;
long long c;
long long erfen(long long l,long long r,long long k){
//	int r=n[m];
//	int l=n[ll];
	long long res=0;	
	long long mid;
	if(l==r && n[l] != k){
		return -1;
	} 
	if(l==r && n[l] == k) {
		res=xy[k];
	//	cout<<res<<endl;
		return res;
	}
	mid=(l+r)/2;
	if (n[mid]<k){
		return erfen(mid+1,r,k);
	}
	if (n[mid]>=k){
		return erfen(l,mid,k);
	}
}
int main(){

	long long sum=0;
	scanf("%d%d",&m,&c);
	for (long long i=0;i<m;i++){
		long long t;
		scanf("%d",&t);
		n[i]=t;
		xy[t]+=1;
	}
	sort(n , n+m);
	for (long long i=0;i<m;i++){
		long long l=n[i];
		long long j=l+c;
		long long res=erfen(0,m,j);
		if (res>=1){
			sum+=res;
		}
	}
	printf("%d",sum);
	return 0;
}
2024/11/26 22:20
加载中...