Pagini recente » Istoria paginii utilizator/petrediana | simulare_olimpiada_clasele_11_12 | Cod sursa (job #1275918) | Cod sursa (job #1591738) | Cod sursa (job #1446302)
#include <iostream>
#include <fstream>
using namespace std;
int n,m,viz[100000];
struct nod
{
int info;
nod *next;
} *l[100000];
void df_l(int k)
{ nod *p;
viz[k]=1;
for(p=l[k];p!=NULL;p=p->next)
if(viz[p->info]==0) df_l(p->info);
}
int main()
{ ifstream f("dfs.in");
ofstream g("dfs.out");
int i,x,y,nr=1;
nod *p,*q;
f>>n;
f>>m;
for(i=1;i<=m;i++)
{
f>>x>>y;
p=new nod;
p->info=y;
p->next=l[x];
l[x]=p;
q=new nod;
q->info=x;
q->next=l[y];
l[y]=q;
}
for(i=1;i<=n;i++)
if(viz[i]==0)
{nr++;
df_l(i);}
g<<nr;
return 0;
}