警示后人
查看原帖
警示后人
373938
wowwowwow楼主2024/4/3 13:33

如果你WA第二个点:

	for(int i = 1; i <= n; i++){
		scanf("%d", &a[i]);
		a[i] = abs(a[i]);
		if(a[i] == 0 || t[a[i]]) return 1;
		t[a[i]] = 1;
	}

如果按上面这样写,那么还没读完数据就return 1了。这道题多测,那么之后的数据会读到下一组数据中。

正确code:

	for(int i = 1; i <= n; i++){
		scanf("%d", &a[i]);
		a[i] = abs(a[i]);
		if(a[i] == 0 || t[a[i]]) ans = 1;
		t[a[i]] = 1;
	}
	if(ans) return 1;

好吧其实主要警示自己估计也没人会错在这种地方

2024/4/3 13:33
加载中...