// UVa 280 - Vertex
#include <iostream>
#include <string.h>
#include <vector>
using namespace std;
bool visited[101];
int sol;
vector<int> lnk[101];
void dfs(int i) {
for (int j = 0; j < lnk[i].size(); j++) {
if (!visited[lnk[i][j]]) {
visited[lnk[i][j]] = true;
sol++;
dfs(lnk[i][j]);
}
}
}
int main() {
int n;
cin >> n;
while (n) {
for (int i = 1; i <= n; i++)
lnk[i].clear();
int m;
cin >> m;
while (m) {
int a;
cin >> a;
while (a) {
lnk[m].push_back(a);
cin >> a;
}
cin >> m;
}
int q;
for (cin >> q; q; q--) {
int s;
cin >> s;
memset(visited, false, sizeof(visited));
sol = 0;
dfs(s);
cout << n - sol;
for (int i = 1; i <= n; i++)
if (!visited[i])
cout << " " << i;
cout << endl;
}
cin >> n;
}
return 0;
}
Sunday, June 7, 2015
UVa 280 - Vertex
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment