Pagini recente » Cod sursa (job #2341766) | Cod sursa (job #135257) | Cod sursa (job #725003) | Cod sursa (job #1501750) | Cod sursa (job #2676252)
#include <iostream>
#include<fstream>
#include <vector>
using namespace std;
#define MAXN 100005
int N, M;
vector<int> G[MAXN];
char viz[MAXN];
ifstream f("dfs.in");
ofstream g("dfs.out");
void ReadData() {
f >> N >> M;
for (int i = 0; i < M; ++i) {
int a, b;
f >> a >> b;
G[a].push_back(b);
G[b].push_back(a);
}
}
void DF(int nod) {
viz[nod] = 1;
for (vector<int>::iterator it = G[nod].begin(); it != G[nod].end(); ++it)
if (!viz[*it])
{
DF(*it);
}
}
void Solve() {
int componente = 0;
for (int i = 1; i <= N; ++i)
if (!viz[i]) {
++componente;
DF(i);
}
g << componente;
}
int main() {
ReadData();
Solve();
}