Pagini recente » Cod sursa (job #1933338) | Istoria paginii utilizator/vexxato | Statistici Ionescu Andreea Raluca (IonescuRaluca) | Rating Simona Cosma (Simona369) | Cod sursa (job #2040640)
#include <fstream>
#include <vector>
#include <stack>
using namespace std;
/*ifstream cin ("input");
ofstream cout ("output");*/
ifstream cin ("dfs.in");
ofstream cout ("dfs.out");
vector < vector < int > > gr (100100);
vector < int > used (100100);
stack < int > Q;
void dfs_it (int root){
Q.push(root);
while (!Q.empty()){
int now = Q.top();
Q.pop();
if (used[now]){
continue;
}
used[now] = true;
for (int i=gr[now].size() - 1; i>=0; i--){
if (!used[gr[now][i]]){
Q.push(gr[now][i]);
}
}
}
}
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
int nodes , edges;
cin>>nodes>>edges;
for (int i=1; i<=edges; i++){
int a , b;
cin>>a>>b;
gr[a].push_back(b);
gr[b].push_back(a);
}
int cont = 0;
for (int i=1; i<=nodes; i++){
if (!used[i]){
cont ++;
dfs_it(i);
}
}
cout<<cont;
return 0;
}