题意:在拔河比赛中,小胖的力量特别大,一人的力量能抵得过两人的力量,凭借着小胖的出色发挥,他所在的红队最终赢得了胜利。在拔河比赛中,这样的小胖越多越好啊,而体育老师想知道有多少位这样的小胖呢。假如我们给出所有学生的力量值,且任意两位学生的力量是不同的。如何能快速知道有多少位这样的小胖呢。
输入:输入共两行,第一行是一个正整数n,表示共有n位同学。接下来一行为由空格分割的n个正整数,分别表示每一位同学的力量值。
输出:只有一个正整数,为满足条件的数目。
#include<iostream>
int a[1010];
int sum[2020];
using namespace std;
int main()
{
int n,s;
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 v;
v=a[i]+a[k];
if(sum[v])
{
s++;
sum[v]=0;
}
}
}
cout<<s;
return 0;
}
这道题其实挺简单的,只要别掉进坑里就好了。
snow_hello