Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- #define _ ios_base::sync_with_stdio(0);cin.tie(0);
- #define MAX 50010
- using namespace std;
- vector<int> grafo[MAX];
- int visitado[MAX];
- //DFS
- void dfs (int v){
- visitado[v] = 1;
- for (int i = 0; i < grafo[v].size(); i++){
- int viz = grafo[v][i];
- if (visitado[viz] == 0){
- dfs(viz);
- }
- }
- }
- int main (){ _
- int n, m; cin >> n >> m; //arestas
- //Leitura do grafo
- for(int i = 0; i < m; i++){
- int a, b; cin >> a >> b;
- grafo[a].push_back(b);
- grafo[b].push_back(a);
- }
- //Imprime vértice, grau e vizinhança
- for (int i = 0; i < n; i++){
- printf("Vertice: %d Grau: %d Vizinhos: ", i, grafo[i].size());
- for (int j = 0; j < grafo[i].size(); j++){
- printf("%d ", grafo[i][j]);
- }
- printf("\n");
- }
- //Contar componentes conexas
- int conexas = 0;
- for (int i = 0; i < n; i++){
- if (visitado[i] == 0){
- dfs(i);
- conexas++;
- }
- }
- printf("Componentes conexas: %d", conexas);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement