题解 P5728 【【深基5.例5】旗鼓相当的对手】

· · 题解

这道题挺水的,暴力枚举就过了。1000²=1000000‬所以不会超时。我是用结构体做的,直接开数组也可以。下面是代码:

#include<iostream>
#include<cmath>//我用的abs函数,abs就是求绝对值的函数。它的头文件是cmath。
using namespace std;
int n,ans=0;
struct p{//结构体
    int a,b,c;
}q[1010];//分号别忘了!
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){//输入
        cin>>q[i].a>>q[i].b>>q[i].c;
    }
    for(int i=1;i<n;i++){
        for(int j=i+1;j<=n;j++){//这样不会重复计算,自己举个例子好好想想。
            if(abs(q[i].a-q[j].a)<=5/*利用abs函数*/&&abs(q[i].b-q[j].b)<=5&&abs(q[i].c-q[j].c)<=5&&
            abs(q[i].a+q[i].b+q[i].c-(q[j].a+q[j].b+q[j].c))<=10){
                ans++;//答案+1
            }
        }
    }
    cout<<ans<<endl;//输出
    return 0;//拜拜!
}