Cod sursa(job #901065)

Utilizator Alex_Merceraaaaaaa Alex_Mercer Data 28 februarie 2013 23:58:07
Problema Parcurgere DFS - componente conexe Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <cstdio>
#include <vector>

#define pb push_back

using namespace std;

vector <int> a[100100];
int n,m,i,x,y,nr;
bool u[100100];

inline void df(int nod)
{
    vector<int>::iterator it;
    u[nod] = true;
    for (it=a[nod].begin(); it!=a[nod].end(); it++)
        if (!u[*it]) df(*it);
}

int main()
{
    freopen ("dfs.in","r",stdin);
    freopen ("dfs.out","w",stdout);

    scanf ("%d %d",&n,&m);

    for (i=1; i<=m; i++)
    {
        scanf ("%d %d",&x,&y);
        a[x].pb(y);
        a[y].pb(x);
        u[i] = false;
    }

    nr = 0;

    for (i=1; i<=n; i++)
    {
        if (!u[i])
        {
            nr++;
            u[i] = true;
            df(i);
        }
    }

    printf ("%d\n",nr);
    return 0;
}