Pagini recente » Cod sursa (job #716524) | Cod sursa (job #2669199) | Cod sursa (job #2433254) | Cod sursa (job #1025384) | Cod sursa (job #2721715)
#include <fstream>
#include <vector>
#define N 100000
using namespace std;
ifstream fin( "dfs.in" );
ofstream fout( "dfs.out" );
vector <int> g[N + 1];
char parcurs[N + 1];
void dfs( int nod ) {
for ( int i = 0; i < g[nod].size(); i ++ ) {
if ( !parcurs[g[nod][i]] ) {
parcurs[g[nod][i]] = 1;
dfs( g[nod][i] );
}
}
}
int main() {
int n, m, x, y, cnt;
fin >> n >> m;
for ( int i = 1; i <= m; i ++ ) {
fin >> x >> y;
g[x].push_back( y );
g[y].push_back( x );
}
cnt = 0;
for ( int i = 1; i <= n; i ++ ) {
if ( !parcurs[i] ) {
parcurs[i] = 1;
dfs( i );
cnt ++;
}
}
fout << cnt << "\n";
return 0;
}