Код IT Загрузка примера кода…

C++ main.cpp
void dfs(int v, const vector<vector<int>> &g, vector<bool> &used) {
    used[v] = true;
    for (int to : g[v]) {
        if (!used[to]) {
            dfs(to, g, used);
        }
    }
}

// запуск обхода всего графа
vector<bool> used(n);
for (int i = 0; i < n; ++i) {
    if (!used[i]) {
        dfs(i, g, used);
    }
}
void dfs(int v, const vector<vector<int>> &g, vector<bool> &used) {
    used[v] = true;
    for (int to : g[v]) {
        if (!used[to]) {
            dfs(to, g, used);
        }
    }
}

// запуск обхода всего графа
vector<bool> used(n);
for (int i = 0; i < n; ++i) {
    if (!used[i]) {
        dfs(i, g, used);
    }
}