Pagini recente » Istoria paginii utilizator/mihaisan | Rating Nguyen Quoc Huy (quochuya) | Rating Mihai Samson (Mihai11) | Diferente pentru monthly-2012/runda-9/solutii intre reviziile 28 si 11 | Cod sursa (job #893706)
Cod sursa(job #893706)
#include <iostream>
#include <fstream>
#include <vector>
#include <string.h>
#define nmax 100005
using namespace std;
vector <int> vecin[nmax];
bool vizitat[nmax];
void dfs(int curent) {
for(int i = 0; i < vecin[curent].size(); i++)
if(!vizitat[vecin[curent][i]]) {
vizitat[vecin[curent][i]] = true;
dfs(vecin[curent][i]);
}
}
int main() {
ifstream f("dfs.in");
ofstream g("dfs.out");
memset(vizitat, 0, nmax*sizeof(bool));
int n, m;
f>>n>>m;
for(int i=1; i<=m; i++) {
int a, b;
f>>a>>b;
vecin[a].push_back(b);
vecin[b].push_back(a);
}
int sol = 0;
for(int i=1; i<=n; i++)
if(!vizitat[i]) {
dfs(i);
sol++;
}
g<<sol<<"\n";
return 0;
}