二分法 开O2 84 TLE#2#3
查看原帖
二分法 开O2 84 TLE#2#3
754021
fish_love_cat楼主2022/10/10 13:18

救命啊!!!

#include<bits/stdc++.h>
using namespace std;
int n;
long long a[2000005],c,ans;
void erfen(long long b,int l,int r){
    int mid=(l+r)/2;
    if(r<l){
        return;
    }else if(a[mid]==b){
        ans++;
        erfen(b,l,mid-1);
        erfen(b,mid+1,r);
    }else if(a[mid]<b){
        erfen(b,mid+1,r);
    }else{
        erfen(b,l,mid-1);
    }
}
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++){
        erfen(a[i]+c,i,n-1);
    }
    cout<<ans;
    return 0;
}
2022/10/10 13:18
加载中...