Участник:Rusal/BCAKE

Материал из DISCOPAL
Перейти к: навигация, поиск

https://www.spoj.com/problems/BCAKE/

int H,W,K;
scanf("%d %d %d\n", &H, &W, &K);
//printf("%d, %d, %d\n", H, W, K);
int i,j,x,y;
//char A[30][30];
char A;
int B[32][32];
//B[0][0]=0;
for (j=0; j<=W; j++)
    B[0][j]=0;
for (i=1; i<=H; i++){
    B[i][0]=0;
    for (j=1; j<=W; j++){
        scanf("%c", &A);
        B[i][j]=B[i][j-1]+B[i-1][j]-B[i-1][j-1];
        if (A == 'C')
            B[i][j]++;
    }
    scanf("\n");
}
int M_S = 1000;
for (x=1;x<=H;x++){
    for (y=1;y<=W;y++){
        for (i=x;i<=H;i++){
            for (j=y;j<=W;j++){
               int num = B[i][j]+B[x-1][y-1]-B[i][y-1]-B[x-1][j];
               //printf("@(%d - %d)^(%d - %d) = %d\n", i, x-1,j,y-1, num);
               if (num == K){
                    int S = (i-x+1)*(j-y+1);
                    if (M_S>S){
                        M_S = S;
                        //printf("%d\n", M_S);
                    }
                }
 
            }
 
        }
    }
 
}
if (M_S == 1000)
    M_S = -1;
printf("%d", M_S);

StasFomin 00:41, 2 декабря 2020 (MSK): Нужна версия SPOJ-компилятора, та же проблема. Rusal 17:08, 2 декабря 2020 (MSK)C(gcc) Rusal 21:17, 2 декабря 2020 (MSK) UPD Признаю, там компилится, но говорит, что ответ неверный. Но контрпримеров я не нашёл(