Skip to content

Instantly share code, notes, and snippets.

@furdarius
Last active November 10, 2015 13:46
Show Gist options
  • Save furdarius/ed0d06bc2e3fbd650dab to your computer and use it in GitHub Desktop.
Save furdarius/ed0d06bc2e3fbd650dab to your computer and use it in GitHub Desktop.
Кол-во компонентов графа
vector<char> used;
vector< vector<int> > g;
void dfs(int start)
{
used[start] = true;
for (int i = 0; i < g[start].size(); ++i) {
if (!used[g[start][i]]) {
dfs(g[start][i]);
}
}
}
int main()
{
ull n;
cin >> n;
g.resize(n);
used.resize(n, false);
for (int i = 0; i < n; ++i) {
int tmp;
cin >> tmp;
while (tmp != 0) {
g[i].push_back(--tmp);
g[tmp].push_back(i);
cin >> tmp;
}
}
int cnt = 0;
for (int i = 0; i < n; ++i) {
if (!used[i]) {
dfs(i);
++cnt;
}
}
cout << cnt;
//system("pause");
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment