Cod sursa(job #154302)

Utilizator georgepalPal George Catalin georgepal Data 11 martie 2008 09:09:47
Problema Parcurgere DFS - componente conexe Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.32 kb
#include<fstream.h>   
ifstream f("dfs.in");   
ofstream g("dfs.out");   
int a[2000][2000],viz[2000],m,n,ct;   
void citire_graf()   
    {   
    int x,y,i;   
    f>>n>>m;   
    for(i=1;i<=n;i++)   
        {f>>x>>y;   
        a[x][y]=a[y][x]=1;   
        }   
    f.close();   
    }   
void DF(int v)   
    {viz[v]=1;   
    for(int i=1;i<=n;i++)   
        if(a[v][i]==1 &&!viz[i])   
                DF(i);   
    }   
int primul0()   
    {   
    for(int i=1;i<=n;i++)   
          if(!viz[i])   
                return i;   
    return 0;   
    }   
int main()   
    {   
    int v;   
    citire_graf();   
    do{   
        v=primul0();   
        if(v)   {ct++;DF(v);   
                    }   
        }   
    while(v);   
g<<ct;   
return 0;}  
#include<fstream.h>
ifstream f("dfs.in");
ofstream g("dfs.out");
int a[2000][2000],viz[2000],m,n,ct;
void citire_graf()
	{
	int x,y,i;
	f>>n>>m;
	for(i=1;i<=n;i++)
		{f>>x>>y;
		a[x][y]=a[y][x]=1;
		}
	f.close();
	}
void DF(int v)
	{viz[v]=1;
	for(int i=1;i<=n;i++)
		if(a[v][i]==1 &&!viz[i])
				DF(i);
	}
int primul0()
	{
	for(int i=1;i<=n;i++)
		  if(!viz[i])
				return i;
	return 0;
	}
int main()
	{
	int v;
	citire_graf();
	do{
		v=primul0();
		if(v) 	{ct++;DF(v);
					}
		}
	while(v);
g<<ct;
return 0;}