Pagini recente » Borderou de evaluare (job #192012) | Cod sursa (job #1041603) | Borderou de evaluare (job #2056591) | Borderou de evaluare (job #3291566) | Cod sursa (job #3272163)
#include <bits/stdc++.h>
using namespace std;
#define Nmax 100001
vector<int> adj[Nmax];
bool used[Nmax];
void dfs( int u ) {
if ( used[u] )
return;
used[u] = true;
for ( int i = 0; i < adj[u].size(); i ++ )
dfs( adj[u][i] );
}
int main()
{
int n, m, u, v, i, ans;
ifstream fin ( "dfs.in" );
ofstream fout ( "dfs.out" );
fin >> n >> m;
for ( i = 0; i < m; i ++ ) {
fin >> u >> v;
adj[u].push_back(v);
adj[v].push_back(u);
}
ans = 0;
for ( i = 1; i <= n; i ++ ) {
if ( used[i] == false )
ans++;
dfs( i );
}
fout << ans << "\n";
fin.close();
fout.close();
return 0;
}