Pagini recente » Cod sursa (job #3032467) | Cod sursa (job #1956317) | Cod sursa (job #253101) | Cod sursa (job #2689768) | Cod sursa (job #1116226)
#include <fstream>
#define nmax 100006
using namespace std;
ifstream fin("dfs.in");
ofstream fout("dfs.out");
struct graf
{
int nod;
graf *next;
}*L[nmax];
int N, M, cnt;
int viz[nmax];
void add (int from, int to)
{
graf *q = new graf;
q -> nod = to;
q -> next = L[from];
L[from] = q;
}
void read()
{
int x, y;
fin >> N >> M;
for (int i = 1; i <= M; ++i)
{
fin >> x >> y;
add(x, y);
add(y, x);
}
}
void DFS(int x)
{
graf *q = L[x];
viz[x] = 1;
while (q != NULL )
{
if (viz[q -> nod] == 0)
DFS(q -> nod);
q = q -> next;
}
}
int main()
{
int i;
read();
for (i = 1; i <= N; ++i)
if (viz[i] == 0)
{
++cnt;
DFS(i);
}
fout << cnt;
return 0;
}