Pagini recente » Cod sursa (job #1513938) | Cod sursa (job #2800511) | Cod sursa (job #1780326) | Cod sursa (job #2653500) | Cod sursa (job #301485)
Cod sursa(job #301485)
#include <fstream.h>
#define max 100012
ifstream f("dfs.in");
ofstream g("dfs.out");
int n, m, sel[max], x, y, count = 0;
struct nod
{
int info;
nod *urm;
} * v[max];
void add(nod &dest, int val)
{
nod *p;
p = new nod;
p->info = val;
p->urm = dest;
dest = p;
}
void read()
{
f>>n>>m;
int x, y, i;
for(i = 1 ; i <= m ; i++)
{
f>>x>>y;
add(v[x], y);
add(v[y], x);
}
}
void dfs(int nd)
{
nod *p;
sel[nd] = 1;
for(p = v[nd] ; p != NULL ; p = p->urm)
if(!sel[p->info])
dfs(p->info);
}
int main()
{
read();
for(int i = 1 ; i <= n ; i++)
if(!sel[i])
{
count++;
dfs(i);
}
g<<count;
f.close();
g.close();
return 0;
}