问题标题: 酷町堂:3685

0
0
已解决
范浩轩
范浩轩
资深守护
资深守护

题目链接: 酷町堂:3685

题目描述 De**ion

在拔河比赛中,小胖的力量特别大,一人的力量能抵得过两人的力量,凭借着小胖的出色发挥,他所在的红队最终赢得了胜利。在拔河比赛中,这样的小胖越多越好啊,而体育老师想知道有多少位这样的小胖呢。假如我们给出所有学生的力量值,且任意两位学生的力量是不同的。如何能快速知道有多少位这样的小胖呢。

输入描述 Input De**ion

输入共两行,第一行是一个正整数 n,表示共有 n位同学。
接下来一行为由空格分割的n个正整数,分别表示每一位同学的力量值。

输出描述 Output De**ion

只有一个正整数,为满足条件的数目。

代码:

#include<iostream>
using namespace std;
int main()
{
    int n;
    cin>>n;
    int cnt=0;
    int a[1005];
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
    }
    for(int i=1;i<=n;i++)
    {
        for(int j=i;j<=n;j++)
        {
            for(int k=j;k<=n;k++)
            {
                if(a[i]+a[j]==a[k]||a[i]+a[k]==a[j]||a[k]+a[j]==a[i])
                {
                    cnt++;
                }
            }
        }
    }
    cout<<cnt;
    return 0;
}

 


0
已采纳
孔德怡
孔德怡
新手光能
新手光能

 <string>

int n,a[1005],t[2005],sum,cnt;

输入>>n;

for(int i=1;i<=n;i++){

输入>>a[i];

t[a[i]]++; }

for(int i=1;i<=n;i++){

for(int j=i+1;j<=n;j++){

sum=a[i]+a[j]; if(t[sum]!=0){

cnt++;

t[sum]=0; } } }

输出<<cnt;

望采纳,点个赞,谢谢

 

我要回答