Cod sursa(job #3368095)

Utilizator SpiketySurei Stefan Spikety Data 13 octombrie 2026 11:04:18
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.76 kb
#include <iostream>
#include <vector>
#include <list>
#include<fstream>
using namespace std;
ifstream fin("dfs.in");
ofstream fout("dfs.out");
vector<list<int>>graf;
vector<bool>viz;
void add(int x, int y){
    graf[x].push_back(y);
    graf[y].push_back(x);
}
void dfs(int x, vector<bool>&viz){
    viz[x] = true;
    for(int i :graf[x]){
        if(!viz[i]){
            dfs(i, viz);
        }
    }

} 
int main(){
    int n,m,x,y,k=0;
    fin>>n>>m;
    graf.resize(n+1);
    viz.resize(n+1, false);
    for(int i=0;i<m;++i){
        fin>>x>>y;
        add(x,y);
    }
    for(int i=1;i<=n;++i){
        if(!viz[i]){
            dfs(i,viz);
            k++;
        }
    }
    fout<<k;
    fin.close();
    fout.close();
    return 0;
}