Pagini recente » Cod sursa (job #526994) | Cod sursa (job #625404) | Cod sursa (job #603317) | Cod sursa (job #1312736) | Cod sursa (job #2241610)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("dfs.in");
ofstream fout ("dfs.out");
int n, m, viz[100001], nr = 0;
typedef struct N
{
int from;
N *to;
}*Node;
Node l[100001];
void inserare(Node &dest, int val)
{
Node p = new N;
p -> from = val;
p -> to = dest;
dest = p;
}
void DFS(int node)
{
Node p;
viz[node] = 1;
for (p = l[node]; p != NULL; p = p -> to)
if(!viz[p -> from])
DFS(p -> from);
}
int main()
{
fin >> n >> m;
for (int i = 0; i < m ; ++i)
{
int x, y;
fin >> x >> y;
inserare(l[x], y);
inserare(l[y], x);
}
for (int i = 0; i < n; ++i)
if(!viz[i])
{
nr++;
DFS(i);
}
fout << nr << endl;
return 0;
}