Cod sursa(job #3343855)

Utilizator Dragu_AndiDragu Andrei Dragu_Andi Data 28 februarie 2026 16:48:30
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("dfs.in");
ofstream fout("dfs.out");

int n, m;
const int nmax=1e5+1, mmax=2e5+5;

vector<int> G[nmax+1];
bool vizitat[nmax+1];
stack<int> dfs;

int main()
{
    fin >> n >> m;
    int x, y;
    for(int i=0; i<m; i++)
    {
        fin >> x >> y;
        G[x].push_back(y);
        G[y].push_back(x);
    }
    int t, ans=0;
    for(int i=1; i<=n; i++)
    {
        if(vizitat[i])
            continue;
        ans++;
        vizitat[i]=true;
        dfs.push(i);
        while(!dfs.empty())
        {
            t=dfs.top();
            dfs.pop();
            for(auto x: G[t])
                if(!vizitat[x])
                {
                    vizitat[x]=true;
                    dfs.push(x);
                }
        }
    }
    fout << ans;
    return 0;
}