#include <iostream>#include<cstdio>#include<queue>#include<vector>#include<set>#include<algorithm>#include<map>#include<string>#include<cstring>using namespace std;//1142const int maxn = 210;int n, m, k, p, mmax, clique,mmin,sum;int G[maxn][maxn],node[maxn];int main() { memset(G, 0, sizeof(G)); cin >> n >> m; int a, b; for (int i = 0; i < m; i++) { cin >> a >> b; G[a][b] = 1; G[b][a] = 1; } cin >> k; for (int i = 0; i < k; i++) { memset(node, 0, sizeof(node)); mmax = 1, clique = 1; mmin = 999; cin >> p; for (int i = 0; i < p; i++) { cin >> node[i]; } for(int i=0;i<p;i++) for (int j = 0; j < p; j++) { if (i != j) { if (G[node[i]][node[j]] == 0) clique = 0; } } for (int i = 0; i < n; i++) { sum = 0; for (int j = 0; j < p; j++) if (G[i][node[j]] == 1) { sum++; if (sum == p) mmax = 0; } } if (mmax == 1 && clique == 1) cout << "Yes" << endl; else if (mmax == 0 && clique == 1) cout << "Not Maximal" << endl; else if (clique == 0) cout << "Not a Clique" << endl; }}
添加回答
举报
0/150
提交
取消