【CCF-CSP】201403-1 相反数
题目
给出 n 个互不相同的数,求其中一共有多少相反数。
分析
记录有哪些数字出现,遍历数组每次 O1 查看相反数。
#include <bits/stdc++.h>
using namespace std;
#define d(x) cout<<x<<endl
typedef long long ll;
const int INF = 0x3f3f3f3f;
const int N = 2e3 + 10;
int n, ans, num;
int a[N], b[N];
int main() {
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]); b[a[i]+1000]++;
}
for (int i = 0; i < n; i++) {
if (b[-a[i] + 1000]) ans++;
}
printf("%d\n", ans >> 1);
return 0;
}