Pagini recente » Cod sursa (job #2977864) | Borderou de evaluare (job #261606) | Borderou de evaluare (job #1031796) | Cod sursa (job #1841604) | Cod sursa (job #1006108)
#include <stdio.h>
struct nod {int val;nod *urm;};
FILE *f,*g;
int n,m,use[100001],x,y,i,nr;
nod *v[100001];
using namespace std;
void add (int x,int y)
{
nod *t;
t=new nod;
t->val=y;
t->urm=v[x];
v[x]=t;
t=new nod;
t->val=x;
t->urm=v[y];
v[y]=t;
}
void df (int r)
{
nod *t;
for (t=v[r];t!=NULL;t=t->urm) if (use [t->val]==0) {
use[t->val]=1;
df (t->val);
}
}
int main()
{f=fopen ("dfs.in","r");
g=fopen ("dfs.out","w");
fscanf (f,"%d%d",&n,&m);
for (i=1;i<=m;i++) {
fscanf (f,"%d%d",&x,&y);
add (x,y);
}
for (i=1;i<=n;i++) if (use[i]==0) {use[i]=1;
nr++;
df (i);}
fprintf (g,"%d",nr);
return 0;
}