Pagini recente » Cod sursa (job #500757) | Cod sursa (job #118761) | Cod sursa (job #1857709) | Cod sursa (job #16143) | Cod sursa (job #2193658)
#include<iostream>
#include<fstream>
#include<vector>
#define infinty INT_MAX
const int Nlim = 100005;
std::ifstream f("dfs.in");
std::ofstream g("dfs.out");
int N, M, x, y;
std::vector<int> Muchii[Nlim];
bool vizitat[Nlim];
int insule = 0;
void DFS(int s) {
vizitat[s] = true;
for (unsigned int i = 0; i < Muchii[s].size(); i++) {
int vecin = Muchii[s][i];
if (!vizitat[vecin])
DFS(vecin);
}
}
void citire() {
f >> N >> M;
for (int i = 1; i <= M; i++) {
f >> x >> y;
Muchii[x].push_back(y);
Muchii[y].push_back(x);
}
for (int i = 1; i <= N; i++) {
if (!vizitat[i]) {
insule += 1;
DFS(i);
} }
g << insule<<"\n";
}
int main() {
citire();
return 0;
}