Cod sursa(job #3335452)

Utilizator voaidesrVoaides Robert voaidesr Data 22 ianuarie 2026 18:20:37
Problema Parcurgere DFS - componente conexe Scor 65
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>
#include <vector>
using namespace std;

ifstream cin("dfs.in");
ofstream cout("dfs.out");

vector<vector<int>> adj;
vector<bool> vis;

void dfs(int n)
{

    if (!vis[n])
    {
        vis[n] = true;
        for (const auto &neigh : adj[n])
        {
            if (!vis[neigh])
                dfs(neigh);
        }
    }
}

int main()
{
    int n, m, res = 0;
    cin >> n >> m;

    adj.assign(n + 1, vector<int>());
    vis.assign(n + 1, false);

    for (int i = 0; i < m; i++) {
        int u, v;
        cin >> u >> v;
        adj[u].push_back(v);
        adj[v].push_back(u);
    }

    for (int i = 1; i < n; i++)
    {
        if (!vis[i])
        {
            res++;
            dfs(i);
        }
    }

    cout << res;
    return 0;
}