您的位置:首页 > 其它

CCF模拟题 相反数

2015-03-21 16:57 204 查看
[b]相反数[/b]

时间限制:1.0s
内存限制:256.0MB
问题描述
  有 N 个非零且各不相同的整数。请你编一个程序求出它们中有多少对相反数(a 和 -a 为一对相反数)。

输入格式
  第一行包含一个正整数 N。(1 ≤ N ≤ 500)。
  第二行为 N 个用单个空格隔开的非零整数,每个数的绝对值不超过1000,保证这些整数各不相同。

输出格式
  只输出一个整数,即这 N 个数中包含多少对相反数。

样例输入
5
1 2 3 -1 -2

样例输出
2

解题:。。。

#include <bits/stdc++.h>
#define LL long long
using namespace std;
const int maxn = 1010;
int positive[maxn],negative[maxn],n,tmp;
int main(){
while(~scanf("%d",&n)){
LL ans = 0;
memset(positive,0,sizeof(positive));
memset(negative,0,sizeof(negative));
for(int i = 0; i < n; ++i){
scanf("%d",&tmp);
if(tmp < 0) negative[-tmp]++;
if(tmp > 0) positive[tmp]++;
}
for(int i = 0; i < maxn; ++i)
ans += positive[i]*negative[i];
printf("%I64d\n",ans);
}
return 0;
}


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: