Pagini recente » Cod sursa (job #846092) | Cod sursa (job #3273807) | Cod sursa (job #2730370) | Cod sursa (job #52073) | Cod sursa (job #1703739)
#include <bits/stdc++.h>
using std::vector;
#define MAX_N 100000
int N, M;
vector <int> adj[MAX_N + 1];
bool seen[MAX_N + 1];
void dfs(int u) {
seen[u] = 1;
vector <int>::iterator it;
for (it = adj[u].begin(); it != adj[u].end(); it++) {
if (!seen[*it]) {
dfs(*it);
}
}
}
int main(void) {
int u, v;
FILE *f = fopen("dfs.in", "r");
fscanf(f, "%d %d", &N, &M);
while (M) {
fscanf(f, "%d %d", &u, &v);
adj[u].push_back(v);
adj[v].push_back(u);
M--;
}
fclose(f);
int count = 0;
for (u = 1; u <= N; u++) {
if (!seen[u]) {
dfs(u);
count++;
}
}
freopen("dfs.out", "w", stdout);
fprintf(stdout, "%d\n", count);
fclose(stdout);
/// Multumim Doamne!
puts("Doamne ajuta!");
return 0;
}