Pagini recente » Cod sursa (job #2378259) | Cod sursa (job #2227572) | Cod sursa (job #2928991) | Cod sursa (job #516708) | Cod sursa (job #1712506)
#include <iostream>
#include <fstream>
#include <map>
#include <vector>
#include <algorithm>
#include <tuple>
using namespace std;
void DFS(int N, const vector<vector<int>> &adj, vector<bool> &visited){
visited[N] = true;
for(auto &x : adj[N]){
if(visited[x] == false)
DFS(x,adj,visited);
}
}
int main(){
int N, M, x, y;
ifstream in("dfs.in");
ofstream out("dfs.out");
in >> N >> M;
vector<vector<int>> adj(N+1);
vector<bool> visited(N+1);
for(int i = 1; i <= M; i++){
in >> x >> y;
adj[x].push_back(y);
adj[y].push_back(x);
}
int counter = 0;
for(int i = 1; i <= N; i++){
if(visited[i] == 0){
counter++;
DFS(i,adj,visited);
}
}
out << counter;
return 0;
}