Cod sursa(job #2710047)

Utilizator Turturica_DorinTurturica Dorin Turturica_Dorin Data 21 februarie 2021 18:16:42
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.98 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;
ifstream fin("dfs.in");
ofstream fout("dfs.out");
#define nrin 100005

vector <int> v[100005], st;
int viz[nrin], n, m, i, x, y;

int DFS(){
    int nr = 0, nc, ceva;
    for(i = 1; i <= n; i++){
        if(viz[i] != 1){
            nr++;
            st.push_back(i);
            viz[i] = 1;
            while(st.empty() == false ){
                ceva = st.size()-1;
                nc = st[ ceva ];
                st.pop_back();
                for(auto x : v[ nc ]){
                    cout<<x<<' ';
                    if(viz[x] == 0){
                        viz[x] = 1;
                        st.push_back(x);
                    }
                }
            }
        }
    }
    return nr;
}


int main()
{
    fin>>n>>m;
    for(i = 1; i <= m; i++){
        fin>>x>>y;
        v[x].push_back(y);
        v[y].push_back(x);
    }
    fout<<DFS();
    return 0;
}