Pagini recente » Cod sursa (job #709202) | Cod sursa (job #1849716) | Cod sursa (job #711926) | Cod sursa (job #791477) | Cod sursa (job #1115695)
#include <fstream>
#include <vector>
using namespace std;
ifstream f("dfs.in");
ofstream g("dfs.out");
int n,m,y,x,i,p,u,nr,mi,nrr,b[100001];
int a[100001];
vector <int> v[100001];
int main()
{
f>>n>>m;
for (i=1;i<=m;i++)
{
f>>y>>x;
v[y].push_back(x);
}
while (nr!=n)
{
nrr++;
p=u=1;
for (i=1;i<=n;i++)
if (!a[i])
{
mi=i;
break;
}
b[p]=mi;
nr++;
a[mi]=1;
while (p<=u)
{
if (v[b[p]].size()>0)
{for (i=0;i<=v[b[p]].size()-1 ;i++)
if (a[v[b[p]][i]]==0)
{
u++;
b[u]=v[b[p]][i];
a[v[b[p]][i]]=a[b[p]]+1;
nr++;
}
}
p++;
}
}
g<<nrr;
f.close();
g.close();
}