Cod sursa(job #636902)

Utilizator ELHoriaHoria Cretescu ELHoria Data 20 noiembrie 2011 01:14:18
Problema DreptPal Scor 0
Compilator cpp Status done
Runda .com 2011 Marime 0.74 kb
#include <fstream>

using namespace std;

ifstream fin("dreptpal.in");
ofstream fout("dreptpal.out");

int N , M , D[1001] , p[1001][1001];

int main()
{
	fin>>N>>M;
	int l , r , lg , amax = N , lmin;
	for(int i=1;i<=N;++i)
	{
		for(int j=1;j<=M;++j)
			fin>>D[j];
	
		for(int j=2;j<M;++j)
		{
			if(D[j-1]==D[j+1])
			{
				lg = 3;
				l = j-2 , r = i+2;
				while(l>=1 && r<=M && D[l]==D[r]) l-- , r++ , lg+=2;
				p[i][j] = lg;
			}
			else  p[i][j] = 1;
		}
	}

	for(int j=2;j<M;++j)
		for(int i=1;i<N;++i)
		{
			lmin = p[i][j];
			amax = max(amax,lmin);
			for(int k=i+1;k<=N && lmin!=1;++k)
			{
				lmin = min(lmin,p[k][j]);
				amax = max(amax,(k-i+1) *lmin);
			}
		}
	fout<<amax<<'\n';
	return 0;
}