CPP   51
elemento
Guest on 8th September 2023 02:36:34 PM


  1. #include <iostream>
  2. #include <string>
  3. #include <cstring>
  4. #include <string.h>
  5. #include <cstdio>
  6. #include <stdio.h>
  7. #include <stdlib.h>
  8. #include <cstdlib>
  9. #include <algorithm>
  10. #include <math.h>
  11.  
  12. using namespace std;
  13.  
  14. int matriz[101][102][2];
  15. bool marcados[101];
  16. int pilha[101];
  17. int posPilha, elemento;
  18.  
  19. busca(){
  20.         elemento = pilha[posPilha-1];
  21.         int proximo;
  22.         while(matriz[elemento][0][0] < matriz[elemento][100][0]){
  23.                 proximo = matriz[elemento ][ matriz[elemento][0][0]++ ][0] ;
  24.                 if( !marcados[ proximo ] ){
  25.                         pilha[posPilha++] = proximo;
  26.                         busca();
  27.                 }else{
  28.                         int j = 0;
  29.                         while(pilha[j] != proximo){
  30.                                 j++;
  31.                         }
  32.                         if( (posPilha - j)%2 != 0 ){
  33.                                 int contador = 0;
  34.                                 for(;j<posPilha;j++){
  35.                                         contador+= matriz[][][]
  36.                                 }
  37.                         }
  38.                        
  39.                        
  40.                 }
  41.         }
  42. }
  43.  
  44. int main(){
  45.  
  46.         freopen("in.txt", "r", stdin);
  47.         int i, j, temp , quantidade, casos, pontos, ruas, a, b, c;
  48.         scanf("%d", casos);
  49.         while(casos--){
  50.                 scanf("%d%d", &pontos, &ruas);
  51.                 temp = ruas;
  52.                 for(i=1;i<=pontos;i++){
  53.                         matriz[i][0][0] = 1;    //pos atual
  54.                         matriz[i][100][0] = 1;  //pos livre;
  55.                         marcados[i] = false;
  56.                 }
  57.                 while(temp--){
  58.                         scanf("%d%d%d", &a, &b, &c);
  59.                         matriz[a][matriz[a][100][0]++][0] = b ;
  60.                         matriz[a][ matriz[a][100][0] ][1] = c ;
  61.                         matriz[b][matriz[b][100][0]++][0] = a ;
  62.                         matriz[b][ matriz[b][100][0] ][1] = c ;
  63.                 }
  64.                 for(i=1;i<pontos;i++){
  65.                         if(!marcados[i]){
  66.                                 posPilha = 0;
  67.                                 pilha[posPilha++] = i;
  68.                                 busca();
  69.                         }
  70.                 }
  71.         }
  72.        
  73.         return 0;
  74. }

Raw Paste

Login or Register to edit or fork this paste. It's free.