测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A26397. 组合

填空题 困难

题目描述

组合

题目描述

你收集了 n 张卡片,按照收集的时间顺序编号 1 到 n 并依次排列,每张卡片上标有一个数值。现在突发奇想,想知道在这些卡片中,若每次挑选两张卡片,会有多少对不同的组合满足两张卡片的数值和恰好为 0,请你计算出符合条件的卡片组合的数量。

输入格式

第一行:单个整数表示 n

第二行:n 个整数表示 a1,a2,a3,…,an

输出格式

单个整数:表示有多少对卡片数值和为 0。

输入样例

4
2 -2 2 0

输出样例

2

说明提示

30%的数据,1≤n≤1000;60% 的数据,1≤n≤20000;

100% 的数据,1≤n≤300000;-1,000,000,000≤ai≤1,000,000,000

参考答案

#include <bits/stdc++.h> using namespace std; int a[10000]; int n; int main() { cin>>n; for(int i=0;i<n;i++){ cin>>a[i]; } int cnt=0; for(int i=0;i<n;i++){ for(int j=i+1;j<n;j++){ if(a[i]+a[j]==0) cnt++; } } cout<<cnt; return 0; }
上一题 下一题