Cod sursa(job #287978)

Utilizator Bogdan_tmmTirca Bogdan Bogdan_tmm Data 25 martie 2009 13:50:16
Problema Parcurgere DFS - componente conexe Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include<iostream>
#include<stdio.h>
#include<stack>
using namespace std;
bool a[1010][1010];
int ut[1010],nr;
int main()
{
   freopen("dfs.in","r",stdin);
   freopen("dfs.out","w",stdout);
   int n,m,i;
   scanf("%d%d",&n,&m);
   for(i=1;i<=n;i++)
   {
      int x,y;
      scanf("%d%d",&x,&y);
      a[x][y]=a[y][x]=1;
   }
   stack<int> st;
   for(i=1;i<=n;i++)
   if(!ut[i])
   {nr++;
   while(!st.empty())
   {
      int t;
      t=st.front();
      for(i=1;i<=n;i++)
         if(!a[t][i]&&!ut[i])
            st.push(i);
      if(!ut[t])
      {
         ut[t]=1;
      }
      else
          st.pop();
   }
   }
   printf("%d\n",nr);
   return 0;
}