Pagini recente » Cod sursa (job #1885854) | Cod sursa (job #122879) | Cod sursa (job #94548) | Cod sursa (job #891025) | Cod sursa (job #1241033)
#include <stdio.h>
#define NMAX 100010
using namespace std;
struct lista
{
int nod;
lista *urm;
}*g[NMAX];
int n,m,visit[NMAX],i,nr;
FILE *f1=fopen("dfs.in","r"),*f2=fopen("dfs.out","w");
void adauga(int i,int j)
{
lista *aux=new lista;
aux->nod=i;
aux->urm=g[j];
g[j]=aux;
}
void df(int nod)
{
lista *p;
visit[nod]=1;
for(p=g[nod];p;p=p->urm)
if(!visit[p->nod])df(p->nod);
}
int main()
{
fscanf(f1,"%d%d",&n,&m);
for(i=1;i<=m;i++){int x,y;fscanf(f1,"%d%d",&x,&y);adauga(x,y);adauga(y,x);}
for(i=1;i<=n;i++)
if(!visit[i]){nr++;df(i);}
fprintf(f2,"%d",nr);
return 0;
}
//Our greatest weakness lies in giving up. The most certain way to succeed is always to try just one more time.