Pagini recente » Cod sursa (job #2791868) | Cod sursa (job #545404) | Cod sursa (job #2731506) | Cod sursa (job #2370065) | Cod sursa (job #2226697)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
int const NR=100005;
ifstream fin("dfs.in");
ofstream fout("dfs.out");
int n,m,cnt;
vector < int > muchii[NR];
bool vizitat[NR];
void dfs (int k){
vizitat[k]=true;
for(unsigned int i=0;i<muchii[k].size();i++)
if(!vizitat[muchii[k][i]]) dfs (muchii[k][i]);}
void citire (){
fin>>n>>m;
for(int i=1;i<=m;i++){
int x,y;
fin>>x>>y;
muchii[x].push_back(y);
muchii[y].push_back(x);}
for(int i=1;i<=n;i++)
if (vizitat[i]==false) {cnt++;dfs(i);}
fout<<cnt<<"\n";}
int main(){ citire ();
return 0;}