Cod sursa(job #833872)

Utilizator UnforgivenMihai Catalin Botezatu Unforgiven Data 13 decembrie 2012 10:45:25
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include <fstream>
#include <vector>
#define MAX_SIZE 100000

using namespace std;

vector <int> graf[MAX_SIZE+1];
char select[MAX_SIZE+1];

void DFS(int nod)
{
    select[nod] = 1;
    for (int i =0;i<graf[nod].size();i++)
    {
        if (select[graf[nod][i]] != 1)
        {
            DFS(graf[nod][i]);
        }
    }
}


int main()
{
    ifstream input("dfs.in");
    ofstream output("dfs.out");

    int N, M;

    input >> N >> M;

    for (int i =0;i<M;i++)
    {
        int x , y;
        input >> x >> y;
        graf[x].push_back(y);
        graf[y].push_back(x);
    }
    int comp_conexe = 0;

    for (int i =1; i <=N;i++)
    {
        if (select[i] == 0)
        {
            DFS(i);
            comp_conexe++;
        }
    }

    output << comp_conexe;
    input.close();
    output.close();

    return 0;
}