Cod sursa(job #636853)

Utilizator stelutaSfiriac Bianca steluta Data 20 noiembrie 2011 00:28:26
Problema DreptPal Scor 40
Compilator cpp Status done
Runda .com 2011 Marime 1.08 kb
#include<stdio.h>

int n, m, i, j, i1, j1, p, nr, p1, ok;
long amax, a1, a[1001][1001];

int main () {

    freopen("dreptpal.in", "r", stdin);
    freopen("dreptpal.out", "w", stdout);
    scanf("%d %d", &n, &m);

    for (i=1; i<=n; i++)
        for (j=1; j<=m; j++)
            scanf("%ld", &a[i][j]);

    amax=-1;
    for (i=1; i<=n; i++) {
        for (j=1; j<=m; j++) {
            i1=i; j1=j;
            p=0;
            while ((j1-p>=1) && (j1+p<=m) && (a[i1][j1-p] == a[i1][j1+p]))
                p+=1;
            p-=1;
            nr=1;
            if (p>0) {
                //p1=p;
                ok=1;
                while (ok==1) {
                    p1=p;
                    i1+=1;
                    while ((a[i1][j1-p1] == a[i1][j1+p1]) && (p1>=0) && (i1<=n))
                        p1-=1;
                    p1+=1;
                    if (p1>0) ok=0;
                    else nr+=1;
                }
            }
            a1=(2*p+1)*nr;
            if (a1>=amax) amax=a1;
        }
    }

    printf ("%ld", amax);
    return 0;
}