Pagini recente » Cod sursa (job #2896263) | Cod sursa (job #2474611) | Cod sursa (job #2864941) | Cod sursa (job #1243914) | Cod sursa (job #712836)
Cod sursa(job #712836)
#include <stdio.h>
#include <vector>
using namespace std;
#define FI fopen("dfs.in","r")
#define FO fopen("dfs.out","w")
vector<long> vecini[100001];
long n,sol;
char viz[100001];
void citeste(FILE *f) {
long m,i,a,b;
fscanf(f,"%li%li",&n,&m);
for(i=0;i<m;++i) {
fscanf(f,"%li%li",&a,&b);
vecini[a].push_back(b);
vecini[b].push_back(a);
}
}
void dfs(long nod) {
long lim=vecini[nod].size(),i;
for(i=0;i<lim;i++) {
if(viz[vecini[nod][i]]==0) {
viz[vecini[nod][i]]=1;
dfs(vecini[nod][i]);
}
}
}
int main() {
long i;
citeste(FI);
for(i=1;i<=n;++i)
if(viz[i]==0) {
viz[i]=1;
dfs(i);
++sol;
}
fprintf(FO,"%li",sol);
return 0;
}