1166 Summit
题目链接:https://pintia.cn/problem-sets/994805342720868352/exam/problems/1478635919459287040
题解代码:
#include<iostream>
#include<vector>
using namespace std;
int mmap[205][205];
int main() {
int n, m, k, l;
cin >> n >> m;
for (int i = 0; i < m; i++) {
int a, b;
cin >> a >> b;
mmap[a][b] = mmap[b][a] = 1;
}
cin >> k;
for (int i = 1; i <= k; i++) {
cin >> l;
vector<int> v(l);
int vis[205] = {0};
for (int j = 0; j < l; j++) {
cin >> v[j];
vis[v[j]] = 1;
}
int need_help = 0;
for (int j = 0; j < l; j++) {
for (int p = j + 1; p < l; p++) {
if (!mmap[v[j]][v[p]]) need_help = 1;
}
}
if (need_help) {
printf("Area %d needs help.\n", i);
continue;
};
int more_people = 0;
for (int j = 1; j <= n; j++) {
if (!vis[j]) {
int p;
for (p = 0; p < l; p++) {
if (!mmap[v[p]][j]) break;
}
if (p == l) {
more_people = j;
break;
}
}
}
if (more_people) {
printf("Area %d may invite more people, such as %d.\n", i, more_people);
continue;
}
printf("Area %d is OK.\n", i);
}
return 0;
}

浙公网安备 33010602011771号