Pagini recente » Cod sursa (job #2113980) | Cod sursa (job #2609196) | Cod sursa (job #2640221) | Cod sursa (job #433993) | Cod sursa (job #1766611)
#include <fstream>
#include <vector>
using namespace std;
void dfs(int x, vector<int> adjList[], bool visited[])
{
visited[x] = true;
for (int i = 0; i < adjList[x].size(); i++)
{
int neighbor = adjList[x][i];
if (!visited[neighbor])
dfs(neighbor, adjList, visited);
}
}
int main()
{
int N, M, X, Y;
ifstream f("dfs.in");
f >> N >> M;
vector<int> adjList[N + 1];
for (int i = 0; i < M; i++)
{
f >> X >> Y;
adjList[X].push_back(Y);
adjList[Y].push_back(X);
}
f.close();
bool visited[N + 1];
fill(visited + 1, visited + (N + 1), false);
int result = 0;
for (int i = 1; i <= N; i++)
if (!visited[i])
{
result++;
dfs(i, adjList, visited);
}
ofstream g("dfs.out");
g << result;
g.close();
return 0;
}