Cod sursa(job #3122780)

Utilizator calin06calin mihaescu calin06 Data 20 aprilie 2023 17:45:55
Problema Parcurgere DFS - componente conexe Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include <bits/stdc++.h>
using namespace std;

int n,m,m1,m2,sol;
vector<vector<int>>adj(100010);
vector<bool>viz(100010,0);


void dfs(int nod)
{
    stack<int>st;
    st.push(nod);
    viz[nod] = 1;
    while(!st.empty())
    {
        int top = st.top();
        st.pop();
        for(int i = 0;i < adj[top].size();i++)
            if(viz[adj[top][i]] == 0)
            {
                st.push(adj[top][i]);
                viz[adj[top][i]] = 1;
            }


    }
}

int main()
{
    cin>>n>>m;
    for(int i = 1;i <= m;i++)
    {
        cin>>m1>>m2;
        adj[m1].push_back(m2);
        adj[m2].push_back(m1);
    }

    for(int i = 1;i <= n;i++)
    {
        if(viz[i] == 0)
        {
            dfs(i);
            sol++;
        }
    }
    cout<<sol;
}