1. 程式人生 > >CCF CSP真題 相反數 題解

CCF CSP真題 相反數 題解

題目:
試題編號: 201403-1
試題名稱: 相反數
時間限制: 1.0s
記憶體限制: 256.0MB
問題描述:
問題描述
  有 N 個非零且各不相同的整數。請你編一個程式求出它們中有多少對相反數(a 和 -a 為一對相反數)。
輸入格式
  第一行包含一個正整數 N。(1 ≤ N ≤ 500)。
  第二行為 N 個用單個空格隔開的非零整數,每個數的絕對值不超過1000,保證這些整數各不相同。
輸出格式
  只輸出一個整數,即這 N 個數中包含多少對相反數。
樣例輸入
5
1 2 3 -1 -2
樣例輸出
2

思路:
用STL中map

Code:

//Y map相反數 1h
//[沒仔細看題意:各不相同,浪費了時間] 
//提交時 提交成了另一道... 

#include <iostream>
#include <fstream>
#include <map> 
using namespace std;
map<int,int> m;

int main(){
//  fstream cin("a.txt");
    int n,a,cnt = 0;
    cin>>n; 
    for(int i = 0; i < n; ++i){
        cin>>a;
        m[a] = 1
; if(m.find(-a) == m.end()){ } else{ cnt++; } } cout<<cnt<<endl; return 0; }