// 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