Cod sursa(job #1547792)

Utilizator andreeaanbrusAndreea Anbrus andreeaanbrus Data 9 decembrie 2015 21:48:05
Problema Parcurgere DFS - componente conexe Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
 
ifstream fin("dfs.in");
ofstream fout("dfs.out");
int n, m, i, j, cnt;
bool ok[1005];
vector<int> G[100005];

void ReadGraph();
void DFS(int);
int main()
{
    ReadGraph();
    for(int i = 1; i <= n; i++)
        if(ok[i] == 0)
            DFS(i), cnt++;
    fout << cnt;
    return 0;
}
void ReadGraph()
{
    fin >> n >> m;
    for(int k = 1; k <= m; k ++)
    {
        fin >> i >> j;
        G[i].push_back(j);
        G[j].push_back(i);
    }
}
void DFS(int nod)
{
    ok[nod] = true;
    for(vector<int>::iterator I = G[nod].begin(); I!= G[nod].end(); I++)
        if(ok[*I] == 0)
            DFS(*I);
}