Pagini recente » Cod sursa (job #793311) | Cod sursa (job #2454172) | Cod sursa (job #2567382) | Cod sursa (job #1821991) | Cod sursa (job #2377905)
#include <iostream>
#include <fstream>
#include <vector>
void dfs(int node, std::vector<int> graf[], int* viz)
{
viz[node] = 1;
int lim = graf[node].size();
int vecin;
for (int i = 0; i < lim; i++)
{
vecin = graf[node][i];
if (viz[vecin] == 0)
dfs(vecin, graf, viz);
}
}
int main()
{
std::vector <int> graf[100];
std::ifstream in("dfs.in");
std::ofstream out("dfs.out");
int m, n, x, y;
in >> n >> m;
int* viz = new int[n+1];
for (int i = 0; i <= n; i++)
viz[i] = 0;
for (int i = 0; i < m; i++)
{
in >> x >> y;
graf[x].push_back(y);
graf[y].push_back(x);
}
int nr = 0;
for(int i=1;i<=n;i++)
if (viz[i] == 0)
{
nr++;
dfs(i, graf, viz);
}
out << nr;
in.close();
out.close();
return 0;
}