Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define MAXN 50010
- using namespace std;
- vector<int> grafo[MAXN];
- int marc[MAXN];
- void dfs (int v){
- marc[v] = 1;
- for (int i = 0; i < grafo[v].size(); i++){
- int viz = grafo[v][i];
- if (marc[viz] == 0){
- dfs(viz);
- }
- }
- }
- int main (){
- int n, m;
- scanf("%d %d", &n, &m);
- //LEITURA DO GRAFO
- for (int i = 0; i < m; i++){
- int a, b; scanf("%d %d", &a, &b);
- grafo[a].push_back(b);
- grafo[b].push_back(a);
- }
- //CONTANDO AS COMPONENTES CONEXAS
- int cont = 0;
- for (int i = 1; i <= n; i++){
- if (marc[i] == 0){
- dfs(i);
- cont++;
- }
- }
- printf("%d", cont);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement