Pagini recente » Cod sursa (job #1320384) | Cod sursa (job #1267765) | Cod sursa (job #2562400) | Cod sursa (job #1288365) | Cod sursa (job #1355096)
#include<iostream>
#include<fstream>
#include<vector>
using namespace std;
void dfs(vector< vector<int> > v, vector<int>& viz, int nod)
{
viz[nod] = 1;
for (int i = 0; i < v[nod].size(); i++)
if (viz[v[nod][i]] != 1)
dfs(v, viz, v[nod][i]);
}
int main()
{
int n, m, i, j, nod1, nod2, k = 0;
ifstream f("dfs.in");
f >> n >> m;
vector< vector<int> > v(n+1);
vector<int>viz(n + 1, 0);
for (i = 0; i < m; i++)
{
f >> nod1 >> nod2;
v[nod1].insert(v[nod1].begin(), nod2);
v[nod2].insert(v[nod2].begin(), nod1);
}
for (i = 1; i <= n; i++)
if (!v[i].size())
v[i].insert(v[i].begin(), 0);
for (i = 1; i <= n; i++)
{
for (j = 0; j < v[i].size(); j++)
{
if (!viz[i])
{
k++;
dfs(v, viz, v[i][j]);
}
}
}
ofstream g("dfs.out");
g << k;
f.close();
return 0;
}