Cod sursa(job #1041812)
| Utilizator | Data | 26 noiembrie 2013 10:28:06 | |
|---|---|---|---|
| Problema | Parcurgere DFS - componente conexe | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.68 kb |
#include <iostream>
#include <fstream>
using namespace std;
int n=0,m=0,x=0,y=0,kkt=0,k=0,viz[1001];
bool a[1001][1001];
void dfs(int i,int kkt)
{
if(viz[i]==0)
{
viz[i]=kkt;
for(int j=1;j<=n;j++)
{
if(viz[j]==0 && a[i][j]==1)
dfs(j,kkt);
}
}
}
int main()
{
int i;
freopen("dfs.in","r",stdin);
freopen("dfs.out","w",stdout);
cin>>n>>m;
for(i=1;i<=m;i++)
{
cin>>x;
cin>>y;
a[x][y]=1;
a[y][x]=1;
}
kkt=1;
dfs(1,kkt);
for(i=1;i<=n;i++)
{
if(viz[i]==kkt) k++;
}
cout<<k<<"\n";
return 0;
}
