Pagini recente » Cod sursa (job #2195884) | Cod sursa (job #483539) | Cod sursa (job #3215225) | simulareoji_2006_11-12 | Cod sursa (job #2423741)
#include <iostream>
#include <fstream>
#include <vector>
#define NLIM 100005
using namespace std;
ifstream f("dfs.in");
ofstream g("dfs.out");
bool viz[NLIM] = { false };
vector<int> Muchii[NLIM];
void citire(int &n, int &m) {
f >> n >> m;
for(int i=0; i<m; i++) {
int s, d;
f >> s >> d;
Muchii[s].push_back(d);
Muchii[d].push_back(s);
}
}
void DFS(int nod) {
viz[nod] = 1;
for(unsigned int i=0; i<Muchii[nod].size(); i++) {
int vecin = Muchii[nod][i];
if(!viz[vecin])
DFS(vecin);
}
}
int main() {
int n, m, insule = 0;
citire(n, m);
for(int i=1; i<=n; i++) {
if(viz[i]) continue;
insule++;
DFS(i);
}
g << insule << '\n';
return 0;
}