Pagini recente » Cod sursa (job #1958992) | Cod sursa (job #1446013) | Cod sursa (job #1523287) | Cod sursa (job #2049249) | Cod sursa (job #1267583)
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
#define nmax 200005
#define pb push_back
#define p push
ifstream fin ("dfs.in");
ofstream fout ("dfs.out");
vector <int> v[nmax];
queue <int> q;
int n, m, x, y, i, elemente;
bool seen[nmax];
void bfs(int x){
q.p(x);
int current = q.front();
while(!q.empty()){
for(int j=0; j<v[current].size(); j++)
if(!seen[v[current][j]]){
seen[v[current][j]] = true;
q.p(v[current][j]);
}
q.pop();
}
}
int main(){
fin >> n >> m;
for(i=1; i<=m; i++){
fin >> x >> y;
v[x].pb(y);
v[y].pb(x);
}
for(i=1; i<=n; i++){
if(!seen[i]){
bfs(i);
elemente++;
}
}
cout << elemente << "\n";
return 0;
}