Pagini recente » Cod sursa (job #2987900) | Cod sursa (job #288998) | Cod sursa (job #565265) | Cod sursa (job #115492) | Cod sursa (job #156195)
Cod sursa(job #156195)
#include <fstream.h>
#define NM 100001
struct lista{int nod;lista *urm;} *g[NM];
long nr,n,m,viz[NM];
void add(long x,long y)
{ lista *p=new lista;
p->nod=y;
p->urm=g[x];
g[x]=p;
}
void dfs(long k)
{ lista *p=new lista;
viz[k]=1;
for (p=g[k];p;p=p->urm)
if (!viz[p->nod])
dfs(p->nod);
}
int main()
{ ifstream f("dfs.in");
ofstream g("dfs.out");
f>>n>>m;
long i,x,y;
for (i=1;i<=m;i++)
{ f>>x>>y;
add(x,y);
add(y,x);
}
for (i=1;i<=n;i++)
if (!viz[i])
{ nr++;
dfs(i);
}
g<<nr;
f.close();
g.close();
return 0;
}