Pagini recente » Cod sursa (job #2439839) | Cod sursa (job #2037412) | Cod sursa (job #2751788) | Cod sursa (job #2942204) | Cod sursa (job #2413386)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream in ( "dfs.in" );
ofstream out ( "dfs.out" );
int n, m, nr;
vector <bool> viz;
vector <vector <int>> a;
void dfs( int x )
{
viz[x] = true;
if ( a[x].empty() )
return ;
int y;
for(auto i : a[x])
{
if( !viz[i] )
dfs( i );
}
}
int main ( ){
int i, x, y;
in >> n >> m;
a = vector<vector<int>> (n + 1);
viz = vector <bool> ( n + 1);
for ( i = 0; i < m ; i++ ){
in >> x >> y;
a[x].push_back(y);
}
/*for ( i = 1; i <= n; i++){
for ( int j = 1; j <= n; j++ )
cout << a[i][j] << " ";
cout << '\n';
}*/
for ( i = 1; i <= n; i++ )
if ( not viz[i] ){
dfs ( i );
nr++;
}
out << nr;
in.close();
out.close();
return 0;
}