Cod sursa(job #1115695)

Utilizator robertstrecheStreche Robert robertstreche Data 21 februarie 2014 22:48:31
Problema Parcurgere DFS - componente conexe Scor 15
Compilator cpp Status done
Runda Arhiva educationala Marime 0.94 kb
#include <fstream>
#include <vector>
using namespace std;
ifstream f("dfs.in");
ofstream g("dfs.out");

int n,m,y,x,i,p,u,nr,mi,nrr,b[100001];
int a[100001];
vector <int> v[100001];

int main()
{
    f>>n>>m;
    for (i=1;i<=m;i++)
     {
         f>>y>>x;
         v[y].push_back(x);

     }

   while (nr!=n)
    {
        nrr++;
        p=u=1;
        for (i=1;i<=n;i++)
         if (!a[i])
          {
              mi=i;
              break;
          }
        b[p]=mi;
        nr++;
        a[mi]=1;
     while (p<=u)
      {
          if (v[b[p]].size()>0)
          {for (i=0;i<=v[b[p]].size()-1 ;i++)

               if (a[v[b[p]][i]]==0)
                {
                    u++;
                    b[u]=v[b[p]][i];
                    a[v[b[p]][i]]=a[b[p]]+1;
                    nr++;

                }
          }
           p++;
      }
    }

      g<<nrr;

   f.close();
   g.close();
}