Pagini recente » Cod sursa (job #2220918) | Solutii Autobuze | Istoria paginii runda/pre_oji | Istoria paginii runda/ii_arat_lui_rares_ca_nu_e_greu_sa_faci_runda | Cod sursa (job #849444)
Cod sursa(job #849444)
#include <cstdio>
#include <cstdlib>
#include <vector>
#define nmax 500001
using namespace std;
vector<int> vecini[nmax];
int vizitat[nmax] , nr = 0 , N , M ;
void dfs ( int x )
{
int y ;
for ( int i = 0 ; i < vecini[x].size() ; i++ )
{
y = vecini[x][i];
if ( !vizitat[y] )
{
vizitat[y] = 1;
dfs ( y );
}
}
}
int main ()
{
FILE *fin , *fout ;
fin = fopen ( "dfs.in" , "rt" );
fout = fopen ( "dfs.out" , "wt" );
fscanf ( fin , "%d %d" , &N , &M );
for ( int i = 1 ; i <= M ; i++ )
{
int a , b ;
fscanf ( fin , "%d %d " , &a , &b ) ;
vecini[a].push_back(b);
vecini[b].push_back(a);
}
for ( int i = 1 ; i <= N ; i++ )
if ( !vizitat[i] )
{
nr++;
dfs ( i );
}
fprintf ( fout , "%d \n" , nr );
fclose ( fin );
fclose ( fout );
return 0 ;
}