Advertisement
Riposati

Untitled

Dec 5th, 2016
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.72 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. struct elementos{
  4.     int valor;
  5.     bool jaFoiVisitado;
  6. }typedef Elementos;
  7.  
  8. Elementos matriz[5][5];
  9.  
  10. bool isZero(int linha,int coluna){
  11.  
  12.     if(matriz[linha][coluna].valor==0)
  13.         return true;
  14.     else
  15.         return false;
  16. }
  17.  
  18. bool jaFoiVisitadoEsseNo(int linha,int coluna){
  19.  
  20.     if(matriz[linha][coluna].jaFoiVisitado==true)
  21.         return true;
  22.     else
  23.         return false;
  24. }
  25.  
  26. void backtrack(int linha,int coluna){
  27.  
  28.     // Posição atual
  29.     if(isZero(linha,coluna) && !jaFoiVisitadoEsseNo(linha,coluna)){
  30.         matriz[linha][coluna].jaFoiVisitado = true;
  31.     }
  32.  
  33.     // olhar pra esquerda
  34.     if(coluna > 0 && !jaFoiVisitadoEsseNo(linha,coluna-1) && isZero(linha,coluna-1)){
  35.         backtrack(linha,coluna-1);
  36.     }
  37.  
  38.     // olhar para direita
  39.     if(coluna < 4 && !jaFoiVisitadoEsseNo(linha,coluna+1) && isZero(linha,coluna+1)){
  40.         backtrack(linha,coluna+1);
  41.     }
  42.  
  43.     // olhar para cima
  44.     if(linha > 0 && !jaFoiVisitadoEsseNo(linha-1,coluna) && isZero(linha-1,coluna)){
  45.         backtrack(linha-1,coluna);
  46.     }
  47.  
  48.     //olhar para baixo
  49.     if(linha < 4 && !jaFoiVisitadoEsseNo(linha+1,coluna) && isZero(linha+1,coluna)){
  50.         backtrack(linha+1,coluna);
  51.     }
  52.     //Senão volta pra quem chamou
  53.     else
  54.         return;
  55. }
  56.  
  57. int main()
  58. {
  59.     int i,j,t;
  60.  
  61.     scanf("%d",&t);
  62.  
  63.     while(t--){
  64.  
  65.         for(i=0;i<5;i++){
  66.             for(j=0;j<5;j++){
  67.                 scanf("%d",&matriz[i][j].valor);
  68.                 matriz[i][j].jaFoiVisitado = false;
  69.             }
  70.         }
  71.  
  72.         backtrack(0,0);
  73.  
  74.         if(matriz[4][4].jaFoiVisitado)
  75.             printf("COPS\n");
  76.         else
  77.             printf("ROBBERS\n");
  78.     }
  79.     return 0;
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement