Pagini recente » Cod sursa (job #143113) | Cod sursa (job #2851420) | Cod sursa (job #1615209) | Cod sursa (job #1221166) | Cod sursa (job #1695204)
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("dfs.in");
ofstream cout("dfs.out");
const int MAX_N = 100005;
vector <int> G[MAX_N];
int n, m, X, Y;
bool marked[MAX_N];
void Read()
{
cin >> n >> m;
for (int i = 1; i <= m; ++i) {
cin >> X >> Y;
G[X].push_back(Y);
G[Y].push_back(X);
}
}
void DFS(int node)
{
vector<int>::iterator it;
marked[node] = true;
for (it = G[node].begin(); it != G[node].end(); ++it)
if (!marked[*it])
DFS(*it);
}
void Solve()
{
int res = 0;
for (int i = 1; i <= n; ++i)
if (!marked[i]) {
res++;
DFS(i);
}
cout << res;
}
int main()
{
Read();
Solve();
cin.close();
cout.close();
return 0;
}