Pagini recente » Cod sursa (job #2645045) | Cod sursa (job #633393) | Cod sursa (job #2772684) | Cod sursa (job #1488226) | Cod sursa (job #1456650)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("dfs.in") ;
ofstream fout ("dfs.out") ;
struct nod
{
nod * next ;
int info ;
} ;
nod * L [100001] ;
int viz [100001] , N , M ;
void Add ( int , int ) ;
void Citire ()
{
int a , b ;
fin >> N >> M ;
while ( M >= 1 )
{
fin >> a >> b ;
Add ( a , b ) ;
-- M ;
}
}
void Add ( int a , int b )
{
nod * p = new nod ;
p->info = b ;
p->next = L [a] ;
L [a] = p ;
p = new nod ;
p->info = a ;
p->next = L [b] ;
L [b] = p ;
}
void DFS ( int nd )
{
nod * p ;
viz [nd] = 1 ;
for ( p = L [nd] ; p != 0 ; p = p->next )
if ( viz [ p->info ] == 0 )
DFS ( p->info ) ;
}
int main()
{
Citire () ;
int nr = 0 , i ;
for ( i = 1 ; i <= N ; ++ i )
if ( viz [i] == 0 )
++ nr , DFS (i) ;
fout << nr ;
return 0;
}