为什么wa了一个点
查看原帖
为什么wa了一个点
1829795
panzhiyan1105楼主2025/8/30 21:29
#include<iostream>
#include<algorithm>
using namespace std;
int n,x,h;
int a[1000005];
int find1(int x)
{
int l=0,r=n+1,mid;				
    while(l+1<r)			
    {			
        mid=(l+r)/2;		
        if(a[mid]<=x)l=mid;		
        else r=mid;		
    }			
    return l;			
}
int find2(int x)
{
int l=0,r=n+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>>x;
for(int i=1; i<=n; i++)
{
    cin>>a[i];
}
sort(a+1,a+1+n);
for(int i=1; i<=n; i++)
{
    h+=find1(a[i]+x)-find2(a[i]+x);
}
cout<<h;
return 0;
}
2025/8/30 21:29
加载中...