Cod sursa(job #2329665)

Utilizator infoinbloodIonut Bratu infoinblood Data 27 ianuarie 2019 11:29:07
Problema Parcurgere DFS - componente conexe Scor 5
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <bits/stdc++.h>
#define NMAX 100003
using namespace std;

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

int n,m,a,b,v;
vector <int> muchie[NMAX];
queue <int> q;
int conexe[NMAX];

int main()
{
    fin>>n>>m;
    for(int i=1;i<=m;++i)
    {
        fin>>a>>b;
        muchie[a].push_back(b);
    }
    int cnt=0;
    for(int i=1;i<=n;++i)
    {
        if(conexe[i]==0)
        {
            cnt++;
            q.empty();
            q.push(i);
            conexe[i]=cnt;
            while(q.size()!=0)
            {
                int nod=q.front();
                q.pop();
                for(auto x:muchie[nod])
                {
                    q.push(x);
                    conexe[x]=cnt;
                }
            }
        }
    }
    fout<<cnt;
    return 0;
}