Advertisement
BenjaminWade

megadamas

May 11th, 2023
1,013
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.92 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. int acharCapturas(int i, int j, int tab[20][20]) {
  6.     int nCapturas = 0, maxCapturas;
  7.  
  8.     if(tab[i-1][j-1] == 2 && !tab[i-2][j-2] && i-2 >= 0 && j-2 >= 0) {
  9.         nCapturas++;
  10.         tab[i-1][j-1] = 0;
  11.         nCapturas += acharCapturas(i-2, j-2, tab);
  12.     }
  13.  
  14.     maxCapturas = nCapturas;
  15.  
  16.     if(tab[i-1][j+1] == 2 && !tab[i-2][j+2] && i-2 >= 0) {
  17.         nCapturas = 1;
  18.         tab[i-1][j+1] = 0;
  19.         nCapturas += acharCapturas(i-2, j+2, tab);
  20.     }
  21.  
  22.     if(nCapturas > maxCapturas)
  23.         maxCapturas = nCapturas;
  24.  
  25.     if(tab[i+1][j-1] == 2 && !tab[i+2][j-2] && j-2 >= 0) {
  26.         nCapturas = 1;
  27.         tab[i+1][j-1] = 0;
  28.         nCapturas += acharCapturas(i+2, j-2, tab);
  29.     }
  30.  
  31.     if(nCapturas > maxCapturas)
  32.         maxCapturas = nCapturas;
  33.  
  34.     if(tab[i+1][j+1] == 2 && !tab[i+2][j+2]) {
  35.         nCapturas = 1;
  36.         tab[i+1][j+1] = 0;
  37.         nCapturas += acharCapturas(i+2, j+2, tab);
  38.     }
  39.  
  40.     if(nCapturas > maxCapturas)
  41.         maxCapturas = nCapturas;
  42.  
  43.     return maxCapturas;
  44. }
  45.  
  46. int main() {
  47.     int linhas, colunas, i, j, tab[20][20];
  48.     scanf("%d %d", &linhas, &colunas);
  49.     while(linhas && colunas) {
  50.         int maxCapturas = 0, nCapturas;
  51.         memset(tab, 1, sizeof(tab));
  52.  
  53.         for(i = 0 ; i < linhas ; i++) {
  54.             for(j = (i % 2  == 0 ? 0 : 1) ; j < colunas ; j+=2) {
  55.                 scanf("%d", &tab[i][j]);
  56.             }
  57.         }
  58.  
  59.         for(i = 0 ; i < linhas ; i++) {
  60.             for(j = (i % 2 == 0 ? 0 : 1) ; j < colunas ; j+=2) {
  61.                 if(tab[i][j] == 1) {
  62.                     nCapturas = acharCapturas(i, j, tab);
  63.                     if(nCapturas > maxCapturas)
  64.                         maxCapturas = nCapturas;
  65.                 }
  66.             }
  67.         }
  68.  
  69.         printf("%d\n", maxCapturas);
  70.         scanf("%d %d", &linhas, &colunas);
  71.     }
  72.  
  73.     return 0;
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement