Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- struct elementos{
- int valor;
- bool jaFoiVisitado;
- }typedef Elementos;
- Elementos matriz[5][5];
- bool isZero(int linha,int coluna){
- if(matriz[linha][coluna].valor==0)
- return true;
- else
- return false;
- }
- bool jaFoiVisitadoEsseNo(int linha,int coluna){
- if(matriz[linha][coluna].jaFoiVisitado==true)
- return true;
- else
- return false;
- }
- void backtrack(int linha,int coluna){
- // Posição atual
- if(isZero(linha,coluna) && !jaFoiVisitadoEsseNo(linha,coluna)){
- matriz[linha][coluna].jaFoiVisitado = true;
- }
- // olhar pra esquerda
- if(coluna > 0 && !jaFoiVisitadoEsseNo(linha,coluna-1) && isZero(linha,coluna-1)){
- backtrack(linha,coluna-1);
- }
- // olhar para direita
- if(coluna < 4 && !jaFoiVisitadoEsseNo(linha,coluna+1) && isZero(linha,coluna+1)){
- backtrack(linha,coluna+1);
- }
- // olhar para cima
- if(linha > 0 && !jaFoiVisitadoEsseNo(linha-1,coluna) && isZero(linha-1,coluna)){
- backtrack(linha-1,coluna);
- }
- //olhar para baixo
- if(linha < 4 && !jaFoiVisitadoEsseNo(linha+1,coluna) && isZero(linha+1,coluna)){
- backtrack(linha+1,coluna);
- }
- //Senão volta pra quem chamou
- else
- return;
- }
- int main()
- {
- int i,j,t;
- scanf("%d",&t);
- while(t--){
- for(i=0;i<5;i++){
- for(j=0;j<5;j++){
- scanf("%d",&matriz[i][j].valor);
- matriz[i][j].jaFoiVisitado = false;
- }
- }
- backtrack(0,0);
- if(matriz[4][4].jaFoiVisitado)
- printf("COPS\n");
- else
- printf("ROBBERS\n");
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement