Cod sursa(job #2717827)

Utilizator DavidTosaDavid Tosa DavidTosa Data 7 martie 2021 23:26:12
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.92 kb
#include <iostream>
#include <fstream>

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

int n,i,viz[100010],m,k,j,x,nrc;

struct nod{
    int info;
    nod *urm;
};
nod *v[100010];

struct muchie{
    int x,y;
};
muchie ma[110];

void muchie_noua(int x, int y)
{
    nod *q;

    q=new nod;
    q->urm=v[x];
    q->info=y;
    v[x]=q;

    q=new nod;
    q->urm=v[y];
    q->info=x;
    v[y]=q;
}

void DFS(int x)
{
    int k;
    nod *q;
    viz[x]=1;
    q=v[x];
    while(q!=NULL)
    {
        if(viz[q->info]==0)
            DFS(q->info);
        q=q->urm;
    }
}

int main()
{
    fin>>n>>m;
    for(k=1; k<=m; k++)
    {
        fin>>i>>j;
        muchie_noua(i,j);
    }

    nrc=1;
    for(i=1; i<=n; i++)
    {
        if(viz[i]==0)
        {
            DFS(i);
            nrc++;
        }
    }

    fout<<nrc-1<<'\n';
    return 0;
}