Cod sursa(job #2516026)

Utilizator Rares31100Popa Rares Rares31100 Data 30 decembrie 2019 10:32:08
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <bits/stdc++.h>

using namespace std;

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

int n,m;
int vf[400001],urm[400001],last[200001],nr;
bitset <200001> viz;

void adauga(int nod,int vec)
{
    vf[++nr]=vec;
    urm[nr]=last[nod];
    last[nod]=nr;
}

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

    for(int k=last[nod];k;k=urm[k])
        if(!viz[ vf[k] ])
            dfs(vf[k]);
}

int main()
{
    freopen("fisier.in","r",stdin);

    in>>n>>m;

    for(int i,j,k=1;k<=m;k++)
    {
        in>>i>>j;

        adauga(i,j);
        adauga(j,i);
    }

    int compConv=0;

    for(int i=1;i<=n;i++)
        if(!viz[i])
        {
            dfs(i);
            compConv++;
        }

    out<<compConv<<'\n';

    return 0;
}