蒟蒻求助,第四个点wa了
查看原帖
蒟蒻求助,第四个点wa了
627886
duoaidaoc楼主2022/8/19 12:27
#include<bits/stdc++.h>
using namespace std;
struct node
{
	long long val;long long num;
}k[500000];

long long Hash(long long x){
    if(x<0) return -x%218357 + 218357;
    return x%218357;
}
long long find(long long x){
    long long y = Hash(x);
    while(k[y].val!=0&&k[y].num!=y)y++;
    return y;
}

int main(){
    long long n,c;
    scanf("%lld%lld",&n,&c);
    long long sum = 0;
    for(long long i = 1;i<= n ;i++){
        long long  q;
        scanf("%lld",&q);
        long long x = find(q);
        k[x].val++;
        k[x].num = q;
        
        sum += k[find(q + c)].val;
        sum += k[find(q - c)].val;
    }
    printf("%lld",sum);
    return 0;
}
2022/8/19 12:27
加载中...