如果你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;
好吧其实主要警示自己估计也没人会错在这种地方