Pagini recente » Cod sursa (job #2039880) | Monitorul de evaluare | Cod sursa (job #1234698) | Cod sursa (job #1724545) | Cod sursa (job #1467572)
#include <fstream>
#include <bitset>
#include <vector>
using namespace std;
ifstream cin("dfs.in");
ofstream cout("dfs.out");
#define NMAX 100005
vector<int> g[NMAX];
bitset<NMAX> viz;
int n,m,i,a,b,nr;
void dfs(int nod)
{
viz[nod] = 1;
for(vector <int> :: iterator it = g[nod].begin() ; it != g[nod].end() ; ++ it)
if(!viz[*it]) dfs(*it);
}
int main()
{
cin>>n>>m;
for(i=1;i<=m;i++)
{
cin>>a>>b;
g[a].push_back(b);
g[b].push_back(a);
}
for(i=1;i<=n;i++)
{
if(!viz[i]) {
nr++;
dfs(i);
}
}
cout<<nr<<endl;
return 0;
}