任务描述
本关任务:众所周知,小团体不利于团队的发展。因此,在一个好的团队里不应该有任何小团体。 在 n
个成员的团队中,如果有三个或更多成员彼此不是朋友,或者有三个或更多成员彼此是朋友,那么具有这种情况的团队就是一个坏团队;否则,这个团队就是好团队。 一家公司将对自己公司的每一个团队进行评估。已知团队有 n
个成员,以及在这 n
个成员之间的所有的朋友关系。请判断这个团队是不是一个好的团队。
编程要求
根据提示,在右侧编辑器补充代码。
测试说明
输入描述: 输入的第一行给出测试用例的数量 T
;然后给出 T
个测试用例,T<=15
。 每个测试用例的第一行给出一个整数 n
,表示在这个团队里人员的数量,n≤3000
。 接下来给出 n - 1
行,第 i
行给出 n - i
个数,其中 aij
表示第 i
个成员和第 j + i
个成员之间的关系,0
表示两人不是朋友,1
表示两人是朋友。
输出描述: 如果这个团队是一个好团队,则输出"Great Team!"
;否则输出"Bad Team!"
。
平台会对你编写的代码进行测试:
测试输入: 1
4
1 1 0
0 0
1
预期输出: Great Team!
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cstring>
#include<iostream>
#include<sstream>
#include<cmath>
#include<vector>
#define LL long long
#define INF 0x3f3f3f3f
#define eps 1e-6
using namespace std;
using namespace std;
const LL mod = 1e9 + 7;
int mp[10][10];
int n;
int T;
int main()
{
scanf("%d",&T);
while(T--){
scanf("%d",&n);
memset(mp,0,sizeof(mp));
if(n>=6){
for(int i = 1;i<=n;i++){
for(int j = 1;j<=n-i;j++){
int x;
scanf("%d",&x);
}
}
}
else{
for(int i = 1;i<=n;i++){
for(int j = 1;j<=n-i;j++){
int x;
scanf("%d",&x);
mp[i][i+j] =x;
mp[i+j][i] = x;
}
}
}
if(n>=6){
puts("Bad Team!");
}
else{
int falg = 1;
for(int i = 1;i<=n;i++){
for(int j = 1;j<=n;j++){
for(int k = 1;k<=n;k++){
if(i==j||j==k||i==k)
continue;
if(mp[i][j]==1&&mp[i][k]==1&&mp[j][k]==1){
falg= 0;
//cout<<"fuck1"<<endl;
}
if(mp[i][j]==0&&mp[i][k]==0&&mp[j][k]==0){
//cout<<i<<' '<<j<<' '<<k<<endl;
//cout<<"fuck2"<<endl;
falg = 0;
}
}
}
}
if(falg)
puts("Great Team!");
else
puts("Bad Team!");
}
}
}