CCF 201403-1 相反数

  • 作者:Moilk
  • 最后编辑:2016年09月05日
  • 标签: CCF 算法

问题描述
  有 N 个非零且各不相同的整数。请你编一个程序求出它们中有多少对相反数(a 和 -a 为一对相反数)。
输入格式
  第一行包含一个正整数 N。(1 ≤ N ≤ 500)。
  第二行为 N 个用单个空格隔开的非零整数,每个数的绝对值不超过1000,保证这些整数各不相同。
输出格式
  只输出一个整数,即这 N 个数中包含多少对相反数。
样例输入
  5
  1 2 3 -1 -2
样例输出
  2

#include <iostream>

using namespace std;

int main(void){
	int vec[500];
	int N;
	cin>>N;
	for(int i=0;i<N;i++){
		cin>>vec[i];
	}
	int key;
	int res=0;
	for(int i=0;i<N-1;i++){
		key=-vec[i];
		if(key==0){
			continue;
		}
		for(int j=i+1;j<N;j++){
			if(key==vec[j]){
				res++;
				vec[i]=vec[j]=0;
				break;
			}
		}
	}
	cout<<res<<endl;
	
	return 0;
}