Cod sursa(job #2512122)

Utilizator vali_27Bojici Valentin vali_27 Data 20 decembrie 2019 16:30:42
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.68 kb
#include <bits/stdc++.h>
#define NMAX 100001
using namespace std;

ifstream f ("dfs.in");
ofstream g ("dfs.out");

vector <vector <int> > la;
int n,m,nrc;
bool used[NMAX];

void citire()
{
    f >> n >> m;
    la.resize(n+1);
    int x,y;
    for(int i=1;i<=m;++i)
    {
        f >> x >> y;
        la[x].push_back(y);
        la[y].push_back(x);
    }
}

void dfs(int x)
{
    used[x] = 1;
    for(vector <int>::iterator it = la[x].begin(); it!=la[x].end();++it)
        if(used[*it] == 0)dfs(*it);
}

void rez()
{
    for(int i=1;i<=n;++i)
        if(used[i] == 0)nrc++,dfs(i);

    g << nrc;
}

int main()
{
    citire();
    rez();
    return 0;
}