Pagini recente » Cod sursa (job #2204950) | Cod sursa (job #2546926) | Cod sursa (job #440408) | Cod sursa (job #1117590) | Cod sursa (job #2759227)
#include <stdio.h>
#include <vector>
#define MAX_N 100000
using namespace std;
int viz[MAX_N];
vector <int>muchii[MAX_N];
void fill( int nod ) {
int i;
viz[nod] = 1;
for ( i = 0; i < muchii[nod].size(); i++ ) {
if ( !viz[muchii[nod][i]] )
fill( muchii[nod][i] );
}
}
int main() {
FILE *fin, *fout;
int n, m, a, b, comp, i;
fin = fopen( "dfs.in", "r" );
fscanf( fin, "%d%d", &n, &m );
for ( i = 0; i < m; i++ ) {
fscanf( fin, "%d%d", &a, &b );
a--;
b--;
muchii[a].push_back( b );
muchii[b].push_back( a );
}
fclose( fin );
comp = 0;
for ( i = 0; i < n; i++ ) {
if ( !viz[i] ) {
fill( i );
comp++;
}
}
fout = fopen( "dfs.out", "w" );
fprintf( fout, "%d", comp );
fclose( fout );
return 0;
}