Pagini recente » Diferente pentru utilizator/alisava intre reviziile 10 si 9 | Monitorul de evaluare | Monitorul de evaluare | Sandbox | Cod sursa (job #1389968)
#include <fstream>
#include <vector>
#define curSiz v[z].size()
#define curAsc v[z][i]
using namespace std;
ifstream fin("dfs.in");
ofstream fout("dfs.out");
vector <int> v[100010];
int i,j,in,sf,n,m,q[100010],ver[100010],ans,x,y;
void DFS(int z)
{
int i;
i=0;
ver[z]=1;
for(i=0 ; i<curSiz ; ++i)
if( ver[ curAsc ] == 0 )
DFS( curAsc );
}
int main()
{
fin>>n>>m;
for(i=1 ; i<=m ; ++i)
{
fin>>x>>y;
v[ x ].push_back( y );
v[ y ].push_back( x );
}
for(i=1 ; i<=n ; ++i)
{
if( ver[ i ] == 0 )
{
++ans;
DFS( i );
}
}
fout<<ans;
return 0;
}