Pagini recente » Cod sursa (job #3190472) | Cod sursa (job #2823169) | Cod sursa (job #1917167) | Cod sursa (job #703988) | Cod sursa (job #369200)
Cod sursa(job #369200)
#include<fstream>
#include<iostream>
using namespace std;
#define max 100001
int n,*a[max],v[max],m,nrc;
void read()
{
int m,i,j;
int *grad=new int [n+1];
for(int i=1;i<=n;i++)
grad[i]=0;
ifstream fin("dfs.in");
fin>>n>>m;
for(;m;--m)
{
fin>>i>>j;
grad[i]++;
}
fin.close();
fin.open("dfs.in");
fin>>n>>m;
for(int i=1;i<=n;i++)
{
a[i]=new int [grad[i]+1];
a[i][0]=0;
}
delete [] grad;
for(;m;--m)
{
fin>>i>>j;
a[i][++a[i][0]]=j;
}
}
void dfs(int i)
{
v[i]=1;
for(int k=1;k<=a[i][0];k++)
if(v[k]==0)
{
//t[k]=i;
dfs(k);
}
}
int main()
{
read();
int nrc=0;
for(int i=1;i<=n;i++)
if(v[i]==0)
dfs(i),nrc++;
FILE *fout=fopen("dfs.out","w");
fprintf(fout,"%d ",nrc);
return 0;
}