Pagini recente » Cod sursa (job #790535) | Cod sursa (job #2913184) | Cod sursa (job #1598680) | Cod sursa (job #3274051) | Cod sursa (job #1128425)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("dfs.in");
ofstream fout("dfs.out");
const int MAXN = 100005;
int N, M, Sol;
bool marked[MAXN];
vector<int> G[MAXN];
void Read() {
fin >> N >> M;
int a, b;
for (int i = 0; i < M; ++i) {
fin >> a >> b;
G[a].push_back(b);
G[b].push_back(a);
}
}
void DFS(int node) {
marked[node] = true;
vector<int>::iterator it;
for (it = G[node].begin(); it != G[node].end(); ++it)
if (!marked[*it])
DFS(*it);
}
int main() {
Read();
for (int i = 1; i <= N; ++i) {
if (!marked[i]) {
++Sol;
DFS(i);
}
}
fout << Sol << '\n';
fin.close();
fout.close();
return 0;
}