#8WA,求调
  • 板块P1102 A-B 数对
  • 楼主Maple__
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/10/23 21:31
  • 上次更新2024/10/23 22:42:46
查看原帖
#8WA,求调
465085
Maple__楼主2024/10/23 21:31
#include<bits/stdc++.h>
using namespace std;
const int N=200005;
int a[N];
long long c;
int n;
int s[N];
long long cnt;
int f(long long x){
    int l=1,r=n;
    int mid=(l+r)/2;
    while(l<r){
        mid=(l+r)>>1;
        if(a[mid]<x){
            l=mid+1;
        }
        if(a[mid]>x){
            r=mid;
        }
        if(a[mid]==x){
            return s[mid];
        }
    }
    return 0;
}
int main(){
	
    scanf("%d%d",&n,&c);
    for(int i=1;i<=n;i++)
        scanf("%d",&a[i]);
    sort(a+1,a+n+1);
    int t=0;
    a[0]=-1;
    for(int i=1;i<=n;i++){
        if(a[i]!=a[i-1])t=i;
        s[t]++;
    }
    for(int i=1;i<=n;i++){
        if(a[i]==a[i-1])s[i]=s[i-1];
    }
    for(int i=1;i<=n;i++){
        cnt+=f(a[i]+c);
    }
    cout<<cnt;
    return 0;
}
2024/10/23 21:31
加载中...