Pagini recente » Rating Boboc Robert Andrei (BobocCibo) | Rating FMI Macovei Daniel (hellol30) | Cod sursa (job #860010) | Monitorul de evaluare | Cod sursa (job #283634)
Cod sursa(job #283634)
#include <cstdio>
#include <vector>
using namespace std;
#define FIN "dfs.in"
#define FOUT "dfs.out"
#define MAX_N 100015
#define PB push_back
#define SZ(A) (int)((A).size())
int N, M;
vector<int> G[MAX_N];
bool viz[MAX_N];
void read() {
scanf("%d %d", &N, &M);
for (int i = 1; i <= M; ++i) {
int a, b;
scanf("%d %d", &a, &b);
G[a].PB(b);
G[b].PB(a);
}
}
void DFS(int nod) {
viz[nod] = true;
for (int i = 0; i < SZ(G[nod]); ++i)
if (!viz[G[nod][i]])
DFS(G[nod][i]);
}
void solve() {
int comp = 0;
for (int i = 1; i <= N; ++i)
if (!viz[i]) {
DFS(i);
++comp;
}
printf("%d\n", comp);
}
int main() {
freopen(FIN, "r", stdin);
freopen(FOUT, "w", stdout);
read();
solve();
return 0;
}