Pagini recente » Cod sursa (job #2938988) | Cod sursa (job #49199) | Cod sursa (job #1704186) | Cod sursa (job #2572500) | Cod sursa (job #413562)
Cod sursa(job #413562)
#include <cstdio>
#include <vector>
using namespace std;
FILE* fin=fopen("dfs.in","r");
FILE* fout=fopen("dfs.out","w");
#define NOD_MAX 100005
vector<int> nod[NOD_MAX];
bool viz[NOD_MAX];
int n,m;
void dfs(int i){
viz[i]=true;
for(int j=0;j<nod[i].size();j++){
if(!viz[nod[i][j]]){
dfs(nod[i][j]);
}
}
}
int main(){
fscanf(fin,"%u %u",&n,&m);
int x,y,con=0;
for(int i=0;i<m;i++){
fscanf(fin,"%u %u",&x,&y);
nod[x].push_back(y);
nod[y].push_back(x);
}
for(int i=1;i<=n;i++){
if(!viz[i]){
dfs(i),con++;
}
}
fprintf(fout,"%u\n",con);
fclose(fin);
fclose(fout);
return 0;
}