Cod sursa(job #638346)

Utilizator rootsroots1 roots Data 20 noiembrie 2011 20:27:08
Problema DreptPal Scor 50
Compilator cpp Status done
Runda .com 2011 Marime 0.93 kb
#include <fstream>
#include <cstring>

using namespace std;

ifstream in;
ofstream out;

int v[1010][1010];
int a[1010][1010];

int main()
{
    int M,N,sol;

    in.open("dreptpal.in");
    in>>M>>N;
    for(int i=1;i<=M;++i)
        for(int j=1;j<=N;++j)
            in>>v[i][j];
    in.close();

    memset(a,0,sizeof(a));

    for(int i=1;i<=M;++i)
        for(int j=1;j<=N;++j)
            for(int k=0;v[i][j+k]==v[i][j-k]&&j+k<=N&&0<j-k;a[i][j]+=2,++k)

    sol=0;

    for(int i=1;i<=M;++i)
        for(int j=1;j<=N;++j)
            --a[i][j];

    for(int i=1;i<=M;++i)
        for(int j=1;j<=N;++j)
        {
            int min=a[i][j];
            for(int k=i;k>0;--k)
            {
                if(min>a[k][j]) min=a[k][j];
                if(sol<min*(i-k+1)) sol=min*(i-k+1);
            }
        }

    out.open("dreptpal.out");
    out<<sol<<'\n';
    out.close();

    return 0;
}