Página Principal

MC521-1s2014

MC621-2s2014

MC521-1s2015

MC621-2s2015

MC521-1s2016

Conteúdo

Área Reservada

edit sidebar

LA 2296

Autor: Caique Garutti

#include <stdio.h>

char matriz[22][22];

int perimetro(int x, int y) {
        char c = matriz[x][y];
        int perimetroTotal = 0;
        if (c == 'X') {
                char c1,c2,c3,c4;
                c1 = matriz[x-1][y];
                if (c1 == '.') perimetroTotal++;
                c2 = matriz[x][y+1];
                if (c2 == '.') perimetroTotal++;
                c3 = matriz[x+1][y];
                if (c3 == '.') perimetroTotal++;
                c4 = matriz[x][y-1];
                if (c4 == '.') perimetroTotal++;

                matriz[x][y] = 'p';
                perimetroTotal += perimetro(x-1,y-1);
                perimetroTotal += perimetro(x-1,y);
                perimetroTotal += perimetro(x-1,y+1);
                perimetroTotal += perimetro(x,y-1);
                perimetroTotal += perimetro(x,y+1);
                perimetroTotal += perimetro(x+1,y-1);
                perimetroTotal += perimetro(x+1,y);
                perimetroTotal += perimetro(x+1,y+1);
                /*for (int i = -1; i <= 1; i++) {
                        for (int j = -1; j<=1; j++) {
                                if (i != 0 && j != 0) {
                                        perimetroTotal += perimetro(x +i,x + j);
                                }
                        }
                }*/

        }
        return perimetroTotal;
}

int main() {
        char m;


        for (;;) {

                for (int i = 0; i < 22; i++) {
                        for (int j = 0; j < 22; j++) {
                                matriz[i][j] = '.';
                        }
                }

                int linha,coluna,x,y;
                scanf("%d %d %d %d",&linha,&coluna,&x,&y);
                if (linha == 0 && coluna == 0 && x == 0 && y == 0) {
                        return 0;
                }
                scanf("%c",&m);
                for (int i = 1; i <= linha; i++) {
                        for (int j = 1; j <= coluna; j++) {
                                char c;
                                scanf("%c",&c);
                                matriz[i][j] = c;
                        }
                                scanf("%c",&m);
                }

                /*for (int i = 0; i < 22; i++) {
                        for (int j = 0; j < 22; j++) {
                                printf("%c",matriz[i][j]);
                        }
                        printf("\n");
                }*/


                int perimetroTotal = perimetro(x,y);
                printf("%d\n",perimetroTotal);
        }
}