Cod sursa(job #2168194)

Utilizator matei.goantaGoanta Matei Cosmin matei.goanta Data 14 martie 2018 09:59:07
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
#include <fstream>

using namespace std;

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

int n, m;

struct nod
    {
    int x;
    struct nod *urm;
    };

typedef struct nod * LSI;

LSI lista[1000005];
int nrvec[1000005];
int uz[100005];
int start;


void inserare(LSI &lista, int x)
    {LSI p=new nod;

    p->x=x;
    p->urm=lista;
    lista=p;

    }

void DFS(int k)
    {
    LSI cont=new nod;

    uz[k]=1;
    for(cont=lista[k]; cont; cont=cont->urm)
        if(uz[cont->x]==0)
            DFS(cont->x);
    }

int main()
{   int i, x, y;
    fin>>n>>m;
    for(i=1; i<=m; i++)
        {fin>>x>>y;

        inserare(lista[x], y);
        inserare(lista[y], x);
        }
    int cc=0;
    for(i=1; i<=n; i++)
        {if(!uz[i])
            {DFS(i); cc++;}
        }
    fout<<cc<<'\n';

    fin.close();
    fout.close();
    return 0;
}