Pagini recente » Cod sursa (job #2015861) | Cod sursa (job #2090066) | Cod sursa (job #2893952) | Cod sursa (job #3203492) | Cod sursa (job #833335)
Cod sursa(job #833335)
#include<fstream>
using namespace std;
ifstream f("dfs.in");
ofstream g("dfs.out");
int nr,viz[100001],k,n,m,x,y;
struct nod
{
int inf;
nod *adr;
}*l[100001];
void create(int i,int j)
{
nod *c=new nod;
c->inf=j;
c->adr=l[i];
l[i]=c;
}
void dfs(int a)
{
nod *c=l[a];
viz[a]=1;
while(c&&!viz[c->inf])
{
viz[c->inf]=1;
c=c->adr;
if(c&&!viz[c->inf])
dfs(l[c->inf]->inf);
}
}
int main ()
{
f>>n>>m;
for(k=1;k<=m;++k)
{
f>>x>>y;
create(x,y);
create(y,x);
}
for(k=1;k<=n;++k)
{
if(l[k]&&!viz[l[k]->inf])
{
dfs(k);
++nr;
}
else
if(!viz[k])
{
++nr;
viz[k]=1;
}
}
g<<nr;
return 0;
}