题目描述
在拔河比赛中,小胖的力量特别大,一个人的力量能抵得过两人的力量,凭借着小胖的出色发挥,小胖一个能顶两个,他所在的红队最终赢得了胜利。在拔河比赛中,这样的小胖越多越好啊,而体育老师想知道有多少位这样的小胖呢。假如我们给出所有学生的力量值,且任意两位学生的力量是不同的。如何能很快知道有多少位这样的小胖呢。
输入描述
输入2行:
第1行:一个正整数n,示共有n位同学。
第2行:空格分隔的n个正整数,分别表示每一位同学的力量值。
输出描述
输出1行:
输出一个正整数,小胖的数量。
输入样例 复制
4 3 2 1 5
输出样例 复制
2
提示
样例说明:因为3= 1+2,5=2+3,所以输出为2
数据范围:1≤n≤1000,0<序列中每个数≤1000
#include<bits/stdc++.h>
using namespace std;
int a[1010];
int sum[2020];
int n;
int ans;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
sum[a[i]]=1;
}
for(int i=1;i<n;i++){
for(int k=i+1;k<=n;k++){
int s;
s=a[i]+a[k];
if(sum[s]){
ans++;
sum[s]=0;
}
}
}
cout<<ans;
return 0;
}