Cod sursa(job #1109858)

Utilizator cadirmDirman Catalin cadirm Data 17 februarie 2014 17:43:49
Problema Parcurgere DFS - componente conexe Scor 5
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include <iostream>
#include <vector>
#include <fstream>

using namespace std;

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

const int N=100001;

vector<int> ad[N];
int n,viz[100];

//ad memoreaza

void citire ()
{
    int m,x,y,i;
    in>>n>>m;
    for(i=1;i<=m;i++)
    {
        in>>x>>y;
        ad[x].push_back(y); //l-am adaugat pe y in lista lui x
        ad[y].push_back(x); //l-am adaugat pe x in lista lui y
    }
}

void dfs(int x)
{
    //prel x
    viz[x]=true;
    //out<<x<<" ";
    int y;
    for(unsigned int i=0; i<ad[x].size(); i++)
    {
        y=ad[x][i];
        if(!viz[y])
            dfs(y);
    }
}



int main()
{
    int c=0,i;
    citire();
    for(i=1;i<=n;i++)
        if(viz[i]==0)
        {
            dfs(i);
            c++;
        }
    out<<c;
    return 0;
}