Cod sursa(job #636175)

Utilizator SpiderManSimoiu Robert SpiderMan Data 19 noiembrie 2011 17:35:42
Problema DreptPal Scor 0
Compilator cpp Status done
Runda .com 2011 Marime 0.99 kb
# include <cstdio>

const char *FIN = "dreptpal.in", *FOU = "dreptpal.out";
const int MAX = 1005;

int N, M, sol, A[MAX][MAX], V[MAX][MAX];

inline int max (int a, int b) {
    return a > b ? a : b;
}

int main (void) {
    freopen (FIN, "r", stdin);

    scanf ("%d %d", &N, &M);
    for (int i = 1; i <= N; ++i)
        for (int j = 1; j <= M; ++j)
            scanf ("%d", V[i] + j);
    for (int i = 1; i <= N; ++i)
        for (int j = 1; j <= M; ++j) {
            A[i][j] = 0;
            for (int k = 1; j - k > 0 && V[i][j - k] == V[i][j + k]; ++k, ++A[i][j]);
        }
    for (int i = 1; i <= N; ++i)
        for (int j = 1; j <= M; ++j) {
            int mini = 0x3f3f3f3f, poz = 0;
            for (int k = i; k; --k)
                if (mini > A[k][j])
                    mini = A[k][j], poz = k;
                else if (mini == A[k][j]) poz = k;
            sol = max (sol, (mini * 2 + 1) * (i - poz + 1));
        }
    fprintf (fopen (FOU, "w"), "%d", sol);
}