#include <iostream>
#include<vector>
#include<algorithm>
using namespace std;
int graph[201][201];
bool findint(vector<int> &v,int &order,int &a)
{
while(v[order]<a){order++;}
if(order==a) return true;
else return false;
}
int main()
{
int numv,nume,numcase,a,b;
bool f=true;
bool f1,f2;
cin>>numv>>nume;
for(int i=0;i<nume;i++)
{
cin>>a>>b;
graph[a][b]=graph[b][a]=1;
}
cin>>numcase;
for(int i=0;i<numcase;i++)
{
cin>>a;
vector<int> v(a);
for(int j=0;j<a;j++) cin>>v[j];
sort(v.begin(),v.end());
f=true; f2=true;
for(int j=0;j<a&&f;j++)
{
for(int k=j+1;k<a&&f;k++)
if(graph[v[j]][v[k]]==0) { cout<<"Not a Clique"<<endl; f=false;}
}
int order=0;
for(int j=0;j<numv&&f&&f2;j++)
{
if(findint(v,order,j)) continue;
f1=true;
for(int k=0;k<a&&f1;k++)
{
if(graph[v[k]][j]==0) f1=false;
}
if(f1){ cout<<"Not Maximal"<<endl; f2=false; break; }
}
if(f&&!f1&&f2) cout<<"Yes"<<endl;
}
return 0;
}
pat1142 测试点23没通过 待填坑
最新推荐文章于 2021-03-09 22:08:04 发布