Cod sursa(job #638225)

Utilizator Eugen01Vasilescu Eugen Eugen01 Data 20 noiembrie 2011 19:39:44
Problema DreptPal Scor 30
Compilator cpp Status done
Runda .com 2011 Marime 0.69 kb
#include<stdio.h>
#define Nmax 1009

int m,k,A,max,q,N,M,i,j,a[Nmax][Nmax],b[Nmax][Nmax];

int pal(int i,int j)
{
	q=1;
	
	while (a[i][j-q]==a[i][j+q] && j!=q && j+q<=N ) q++;
	
	return(2*q-1);
}

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("%d",&a[i][j]);
		
	for (i=1;i<=N;i++)
		for (j=1;j<=M;j++)
			b[i][j]=pal(i,j);
	
	for (i=1;i<=N;i++)
		for (j=1;j<=M;j++)
		{
			m=b[i][j];
			A=m;
			if (A>max) max=A;
			for (k=i+1;k<=N;k++)
			{
				if (b[k][j]<m)
					m=b[k][j];
				A=m*(k-i+1);
				if (A>max) max=A;
			}
		}

	printf("%d\n",max);
}