Pagini recente » Cod sursa (job #1612834) | Cod sursa (job #628013) | Cod sursa (job #1967577) | Cod sursa (job #299317) | Cod sursa (job #900015)
Cod sursa(job #900015)
#include <iostream>
#include<fstream>
using namespace std;
int a[10001][10001];
int main()
{
fstream f("dfs.in",ios::in), g("dfs.out",ios::out);
int k,nrC=0, i,vf=1, j,n,m,st[50001],gasit,x,y,viz[10001]={0};
f>>n>>m;
for(i=1;i<=m;i++)
{
f>>x>>y;
a[x][y]=a[y][x]=1;
}
do
{
nrC++;
k=0;
st[++k]=vf;
viz[vf]=1;
gasit=0;
while(k>0)
{
vf=st[k];
for(i=1;i<=n;i++)
if(viz[i]==0&&a[vf][i]==1)
{
viz[i]=1;
st[++k]=i;
break;
}
if(i>n)
k--;
}
for(i=1;i<=n;i++)
if(viz[i]==0)
{
gasit=1;
vf=i;
}
}
while(gasit==1);
g<<nrC;
}