Pagini recente » Istoria paginii runda/simulare-fminostress2017/clasament | Cod sursa (job #421849) | Istoria paginii runda/infocompetiton/clasament | template/userrating | Cod sursa (job #2423718)
#include <iostream>
#include <fstream>
#include <vector>
#define NLIM 100001
using namespace std;
ifstream f("dfs.in");
ofstream g("dfs.out");
void citire(int &n, int &m, vector<int> Muchii[]) {
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, vector<int> Muchii[], bool viz[]) {
viz[nod] = 1;
for(unsigned int i = 0; i<Muchii[nod].size(); i++) {
int vecin = Muchii[nod][i];
if(!viz[vecin])
DFS(vecin, Muchii, viz);
}
}
int main() {
int n, m, insule = 0;
bool viz[NLIM] = { false };
vector<int> Muchii[NLIM];
citire(n, m, Muchii);
for(int i=0; i<n; i++) {
if(viz[i]) continue;
insule++;
DFS(i, Muchii, viz);
}
g << insule << '\n';
return 0;
}