Pagini recente » Cod sursa (job #808782) | Cod sursa (job #1970866) | Cod sursa (job #326457) | Cod sursa (job #2553423) | Cod sursa (job #1006100)
#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 (nod *&p,int e)
{
nod *t;
t=new nod;
t->val=e;
t->urm=p;
p=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 (v[x],y);
}
for (i=1;i<=n;i++) if (use[i]==0) {use[i]=1;
nr++;
df (i);}
fprintf (g,"%d",nr);
return 0;
}