0分求助
查看原帖
0分求助
511914
thirteen0418楼主2022/11/7 20:30

0分求助

本机过测试点能过,但是提交全错,没有其他可供测试点代码:

#include <cstdio>
#include <string.h>
#define MAX 500001
int t,n;
int arr[MAX],re[MAX];
int hash(int pos){
	int h;
	h=(pos%MAX+MAX)%MAX;
	while(arr[h]!=0&&re[h]!=pos){
		h=((h+1)%MAX+MAX)%MAX;
	}
	return h;
}

int main(){
	int temp=0,h=0;
	scanf("%d",&t);
	while (t--){
		memset(arr,0,sizeof(arr));
		memset(re,0,sizeof(re));
		scanf("%d",&n);
		scanf("%d",&temp);
		h=hash(temp);
		arr[h]=1;
		re[h]=temp;
		printf("%d",re[h]);
		while(n--){
		if(n>0)	{
			scanf("%d",&temp);
			h=hash(temp);
			arr[h]=1;
			if(n>1&&re[h]!=temp){
				re[h]=temp;
				printf(" %d",re[h]);
			}
			else if(n==1&&re[h]!=temp){
				re[h]=temp;
				printf(" %d\n",re[h]);
			}
			else 
				continue;	
			}
		}
		
	}
	return 0;
}

2022/11/7 20:30
加载中...