Riposati

Untitled

Aug 21st, 2016
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.60 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. struct estruturaMatriz{
  5.  
  6.     int valor;
  7.     int flag_marca_visitado;
  8.  
  9. }typedef EstruturaMatriz;
  10.  
  11. void resposta(EstruturaMatriz m[5][5],int linha,int coluna){
  12.  
  13.     int valorLinha,valorColuna;
  14.     int f1=0,f2=0,f3=0,f4=0;
  15.     /// olharei nas 4 direções possíveis
  16.  
  17.     if(m[linha][coluna].valor==0){
  18.  
  19.         m[linha][coluna].flag_marca_visitado = 1; /// marca como visitado o vértice que chegar
  20.         valorLinha = linha;
  21.         valorColuna = coluna;
  22.  
  23.         if(valorColuna > 0 && m[valorLinha][valorColuna-1].valor==0 &&
  24.            m[valorLinha][valorColuna-1].flag_marca_visitado==0){
  25.  
  26.             //printf("esquerda = %d\n\n",m[valorLinha][valorColuna-1].valor);
  27.             f1 = 1;
  28.             resposta(m,valorLinha,valorColuna-1);
  29.         }
  30.  
  31.         if(valorColuna < 4 && m[valorLinha][valorColuna+1].valor==0 &&
  32.            m[valorLinha][valorColuna+1].flag_marca_visitado==0){
  33.  
  34.             //printf("direita = %d\n\n",m[valorLinha][valorColuna+1].valor);
  35.             f2 = 1;
  36.             resposta(m,valorLinha,valorColuna+1);
  37.         }
  38.  
  39.         if(valorLinha > 0 && m[valorLinha-1][valorColuna].valor==0 &&
  40.            m[valorLinha-1][valorColuna].flag_marca_visitado==0){
  41.  
  42.             //printf("cima = %d\n\n",m[valorLinha-1][valorColuna].valor);
  43.             f3 = 1;
  44.             resposta(m,valorLinha-1,valorColuna);
  45.         }
  46.  
  47.        if(valorLinha < 4 && m[valorLinha+1][valorColuna].valor==0 &&
  48.            m[valorLinha+1][valorColuna].flag_marca_visitado==0){
  49.  
  50.             //printf("abaixo = %d\n\n",m[valorLinha+1][valorColuna].valor);
  51.             f4 = 1;
  52.             resposta(m,valorLinha+1,valorColuna);
  53.         }
  54.  
  55.         else {
  56.             /*printf("voltei no backtracking!\n");
  57.             printf("valor da linha = %d\n",valorLinha);
  58.             printf("valor da coluna = %d\n",valorColuna);*/
  59.             return;
  60.         }
  61.  
  62.     }/// fim do if que verifica se é 0
  63. }
  64.  
  65. int main()
  66. {
  67.     struct estruturaMatriz m[5][5];
  68.     int i,j,t;
  69.  
  70.     scanf("%d",&t);
  71.  
  72.     while(t--){
  73.  
  74.         for(i=0;i<5;i++){
  75.  
  76.             for(j=0;j<5;j++){
  77.                 scanf("%d",&m[i][j].valor);
  78.                 m[i][j].flag_marca_visitado = 0;
  79.             }
  80.         }
  81.  
  82.         resposta(m,0,0);
  83.  
  84.         /*for(i=0;i<5;i++){
  85.  
  86.             for(j=0;j<5;j++){
  87.  
  88.                 printf("%d ",m[i][j].flag_marca_visitado);
  89.             }
  90.  
  91.             printf("\n");
  92.         }*/
  93.  
  94.         if(m[4][4].flag_marca_visitado==1){
  95.  
  96.             printf("COPS\n");
  97.         }else{
  98.  
  99.             printf("ROBBERS\n");
  100.         }
  101.  
  102.     }
  103.  
  104.     return 0;
  105. }
Add Comment
Please, Sign In to add comment