Advertisement
Guest User

Untitled

a guest
Jan 27th, 2015
203
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.97 KB | None | 0 0
  1. #include<cstdio>
  2. #include<cstring>
  3. #include<vector>
  4. using namespace std;
  5. void DFS(int);
  6. vector<int>Grafo[1005];
  7. int Visitados[1005];
  8. int CConexas;
  9. int main() {
  10. int V,E,x,y;
  11. scanf("%d %d",&V, &E);
  12. while(E--) {
  13. scanf("%d %d",&x, &y);
  14. Grafo[x].push_back(y);
  15. Grafo[y].push_back(x);
  16. }
  17. for(int j = 1 ; j <= V ; j ++) {
  18. printf("%d : ",j);
  19. for(int k = 0 ; k < Grafo[j].size() ; k++){
  20. printf("%d ",Grafo[j][k]);
  21. }
  22. printf("\n");
  23. }
  24. CConexas = 1;
  25. memset(Visitados,0,sizeof(Visitados));
  26. for(int i = 1 ; i <= V; i++) {
  27. if(Visitados[i] == 0) {
  28. DFS(i);
  29. CConexas++;
  30. }
  31. }
  32. for(int a=1;a<=V;a++) printf("%d ",Visitados[a]);
  33. printf("\nComponentes Conexas: %d\n",CConexas-1);
  34. return 0;
  35. }
  36. void DFS(int u) {
  37. Visitados[u] = CConexas;
  38. for(int l = 0 ; l < Grafo[u].size(); l++) {
  39. int v = Grafo[u][l];
  40. if(Visitados[v] == 0) DFS(v);
  41. }
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement