求助,第三个点wa了
  • 板块P1102 A-B 数对
  • 楼主Addrian
  • 当前回复0
  • 已保存回复0
  • 发布时间2022/11/20 19:18
  • 上次更新2023/10/27 02:10:26
查看原帖
求助,第三个点wa了
421128
Addrian楼主2022/11/20 19:18
#include<iostream>
#include<cstdio>
using namespace std;
int read(){
	int x=0,t=1;
	char a=getchar();
	while(a>'9'||a<'0'){if(a=='-')t=-1;a=getchar();}
	while(a>='0'&&a<='9'){x=x*10+a-'0';a=getchar();}
	return x*t;
}
long long n;
long long c;
long long shu;
long long cha;
long long a[200050];
long long sum;
long long hand[50000],next1[200050],jg[200050];//49999模数
int main(){
	cin>>n;
	cin>>c;
	int fj;
	int flag=0;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		shu=a[i];
		fj=shu%49999;
		cha=hand[fj];
		flag=0;
		while(cha!=0){
			if(a[cha]==shu){
				flag=1;
				jg[cha]++;
				break;
			}
			cha=next1[cha];
		}
		if(flag!=1){
			jg[i]=1;
			next1[i]=hand[fj];
			hand[fj]=i;
		}
	}
	long long cj,cjs,cha;
	for(int i=1;i<=n;i++){
		cjs=a[i]+c;
		cj=cjs%49999;
		//cout<<cj;
		cha=hand[cj];
		while(cha!=0){
			//cout<<"giao";
			if(a[cha]==cjs)sum+=jg[cha];
			cha=next1[cha];
		}
	}
	printf("%d",sum);
	return 0;
} 
2022/11/20 19:18
加载中...