求助啊
查看原帖
求助啊
1288602
Xianyujunzhu楼主2024/6/16 09:56
#include<bits/stdc++.h>
using namespace std;
long long N,C,ans;
int a[200020];
int findl(int x){
	int l=0,r=C+1,mid;				
    while(l+1<r)			
    {			
        mid=(l+r)/2;		
        if(a[mid]<=x)l=mid;		
        else r=mid;		
    }			
    return l;			
}
int findr(int x){
	int l=0,r=C+1,mid;				
    while(l+1<r)			
    {			
        mid=(l+r)/2;		
        if(a[mid]<x)l=mid;		
        else r=mid;		
    }			
    return l;			
}
int main(){
	cin>>N>>C;
	for(int i=0;i<N;i++){
		cin>>a[i];
	}
	sort(a,a+N);
	for(int i=0;i<N;i++){
		ans+=findl(a[i]+C)-findr(a[i]+C);
	}
	cout<<ans;
	return 0;
}
2024/6/16 09:56
加载中...