Pagini recente » Cod sursa (job #2883220) | Cod sursa (job #1798354) | Cod sursa (job #3294607) | Cod sursa (job #3177643) | Cod sursa (job #1163433)
#include <fstream>
#include <vector>
using namespace std;
const int MAX = 100005;
int N, M;
vector<int> G[MAX];
bool Visited[MAX];
void citire() {
ifstream in("dfs.in");
in >> N >> M;
for(int i = 1, A, B; i <= M; i++) {
in >> A >> B;
G[A].push_back(B);
G[B].push_back(A);
} in.close();
}
void dfs(int nod) {
Visited[nod] = true;
for(size_t i = 0; i < G[nod].size(); i++) {
int dest = G[nod][i];
if(!Visited[dest])
dfs(dest);
}
}
void afisare() {
int Ans = 0;
for(int i = 1; i <= N; i++) {
if(!Visited[i]) {
dfs(i);
Ans++;
}
}
ofstream out("dfs.out");
out << Ans << "\n";
out.close();
}
int main() {
citire();
afisare();
}