Cod sursa(job #2673122)

Utilizator Sorin123-21Enachioiu Sorin-Catalin Sorin123-21 Data 15 noiembrie 2020 19:48:59
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.97 kb
#include <fstream>
#include <vector>
using namespace std;
ifstream in ("dfs.in");
ofstream out ("dfs.out");

vector <int> mu[100005];
bool vis[100005];

void dfs(int nod)
{
    int i;
    vis[nod]=1;

    for(i = 0; i < mu[nod].size(); i++)
        if(!vis[mu[nod][i]])
            dfs(mu[nod][i]);
}

void cit_afis(int m,bool afis)
{
    int a, b;
    for(int i = 1; i <= m; i++)
    {
        if(afis)
        {
            out << i <<" : ";
            for(int j = 0; j < mu[i].size(); j++)
                out << mu[i][j]<<' ';
            out<<'\n';
        }
        else
        {
            in >> a >> b;
            mu[a].push_back(b);
            mu[b].push_back(a);
        }
    }
}

int main()
{
    int n, m, x, y, nr = 0;
    int i;

    in >> n >> m;

    cit_afis(m, 0);

    for(i = 1; i <= n; i++)
    {
        if(!vis[i])
        {
            nr++;
            dfs(i);
        }
    }
    out<<nr;
    return 0;
}