Cod sursa(job #1193894)

Utilizator gbibBacotiu Gabi gbib Data 2 iunie 2014 10:54:07
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <fstream>
#include <vector>
using namespace std;
ifstream in("dfs.in");
ofstream out("dfs.out");
vector <int> s[100005];
bool viz[100005]={false};
int n,m,sol;
void citire()
{int a,b;
    in>>n>>m;
    int i;
    for(i=1;i<=m;i++)
    {
        in>>a>>b;
        s[b].push_back(a);
        s[a].push_back(b);
    }
}

void dfs(int x)
{
    viz[x]=true;
    for(int j=0;j<s[x].size();j++)
    {
        if(!viz[s[x][j]])
            dfs(s[x][j]);
    }
    s[x].clear();
    return;
}
int main()
{
    citire();
    for(int i=1;i<=n;i++)
    {
        if(viz[i]==0)
            {dfs(i);
            sol++;}
    }
    out<<sol<<'\n';
    return 0;
}