Pagini recente » Cod sursa (job #2154030) | Cod sursa (job #413145) | Cod sursa (job #1125420) | Cod sursa (job #589753) | Cod sursa (job #1336920)
#include <fstream>
#include <vector>
using namespace std;
void DFS(vector<int> v[], bool visited[], int node);
int main()
{
int N, M, X, Y, i;
ifstream f("dfs.in");
f >> N >> M;
vector<int> v[N + 1];
bool visited[N + 1];
for (i = 1; i <= N; i++)
visited[i] = false;
for (i = 1; i <= M; i++)
{
f >> X >> Y;
v[X].push_back(Y);
v[Y].push_back(X);
}
f.close();
int k = 0;
for (i = 1; i <= N; i++)
{
if (!visited[i])
{
DFS(v, visited, i);
k++;
}
}
ofstream g("dfs.out");
g << k;
g.close();
return 0;
}
void DFS(vector<int> v[], bool visited[], int node)
{
visited[node] = true;
for (int i = 0; i < v[node].size(); i++)
if (!visited[v[node][i]])
DFS(v, visited, v[node][i]);
}