Pagini recente » Cod sursa (job #2944604) | Cod sursa (job #263010) | Cod sursa (job #2180722) | Cod sursa (job #2734726) | Cod sursa (job #1765221)
/**
DFS recursiv
*/
#include <iostream>
#include <cstdio>
#include <cstring>
#include<vector>
#include<stack>
using namespace std;
vector <int>lv[100000];
vector <int>::iterator ii;
bool used[100000];
void DFS(int nodc)
{
vector <int>::iterator ii;
for(ii=lv[nodc].begin();ii!=lv[nodc].end();++ii)
if(!used[*ii])
{
used[*ii]=1;
DFS(*ii);
}
}
int main()
{
FILE *f=fopen("dfs.in","r"); FILE *g=fopen("dfs.out","w");
int n,m,i,x,y;
fscanf(f,"%d%d",&n,&m);
memset(used,0,sizeof(used));
for(i=1;i<=m;i++)
{
fscanf(f,"%d%d",&x,&y);
lv[x].push_back(y);
lv[y].push_back(x);
}
int ok=0;
for(i=1;i<=n;i++)
{ if(used[i]==0){DFS(i); ok++;};
}
fprintf(g,"%d",ok);
return 0;
}