Cod sursa(job #629954)

Utilizator blk.irineluIrina Ursateanu blk.irinelu Data 4 noiembrie 2011 11:30:36
Problema Parcurgere DFS - componente conexe Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.94 kb
#include<vector>
#include<cstdio>
#include<queue>
#include<algorithm>
#include<fstream>

using namespace std;

fstream f("dfs.in");
fstream g("dfs.out");

const int MAX_N = 100000;

vector <int> a[MAX_N],viz;

void dfs(int n)
{
  queue <int> c;
  c.push(n);
  viz[n]=true;
  while(!c.empty())
  {
    vector <int>::iterator it;
    int x=c.front();
    //c.pop();
    for(it=a[x].begin();it!=a[x].end();it++)
    {
      if(!viz[*it])
      {
        viz[*it]=true;
        c.push(*it);
        break;
      }
     }
  if( it == a[x].end())
    c.pop();
  }
}


int main()
{
  int n,m,n1,n2,k=0;
  f>>n>>m;
  int i,j;
  for(j=0;j<m;++j)
  {
    f>>n1>>n2;
    a[n1].push_back(n2);
    a[n2].push_back(n1);
  }
  f.close();
 return 0;
  viz.resize(n);
  viz.assign(viz.size(), false);
  for(i=0;i<n;i++)
     if(!viz[i])
     {
        dfs(i);
        k++;
      }
  g<<k;
  g.close();
  return 0;
}