Cod sursa(job #2924654)

Utilizator IoanaTIoana Teodora IoanaT Data 7 octombrie 2022 13:39:39
Problema Parcurgere DFS - componente conexe Scor 5
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.9 kb
#include<iostream>
#include<fstream>
#include<vector>
using namespace std;

void parcurgere(int nod, vector<vector<int>> la, vector<int> &viz);

int main(){
    ifstream f("dfs.in");
    int n=0, m=0, x=0, y=0;

    f>>n>>m; //nr de noduri, respectiv de muchii

    vector<int> adiacente;
    vector<vector<int>> la (n, adiacente);

    while(f>>x>>y){
        //citirea muchiilor
        la[x-1].push_back(y-1);
    }

    //vector vizita noduri
    vector<int> viz(n, 0);
    int comp=0;

    for(int i=0; i<n; i++){

        if(!viz[i]){
            comp++;
            viz[i]=1;

            parcurgere(i, la, viz);
        }
    }

    ofstream g("dfs.out");
    g<<comp;
    return 0;
}
void parcurgere(int nod, vector<vector<int>> la, vector<int> &viz){

    for(int i=0; i<la[nod].size(); i++){
        viz[la[nod][i]]=1;
        parcurgere(la[nod][i], la, viz);
    }
}