Pagini recente » Cod sursa (job #2752999) | Cod sursa (job #2047893) | Cod sursa (job #1027133) | Cod sursa (job #1816353) | Cod sursa (job #638231)
Cod sursa(job #638231)
#include <cstdio>
#include <fstream>
#include <algorithm>
using namespace std;
#define N 1001
int a[N][N],pal[N][N],n,m,sol;
void read ()
{
ifstream in ("dreptpal.in");
in>>n>>m;
for(int i=1;i<=n;++i)
for(int j=1;j<=m;++j)
{
in>>a[i][j];
for(int k=j-2;k>0;--k)
if(a[i][k]==a[i][j])
pal[i][(k+j)>>1]+=2;
}
}
void solve ()
{
sol=n;
for(int i=1;i<=m;++i)
a[1][i]=1;
for(int i=1;i<n;++i)
for(int j=1;j<=m;++j)
{
int s;
if(pal[i][j]<=pal[i+1][j]||pal[i][j]>pal[i+1][j])
{
a[i+1][j]=a[i][j]+1;
s=a[i+1][j]*(min(pal[i][j],pal[i+1][j])+1);
}
else
a[i+1][j]=1;
if(s>sol)
sol=s;
}
}
void out ()
{
freopen ("dreptpal.out","w",stdout);
printf("%d",sol);
}
int main ()
{
read ();
solve ();
out ();
return 0;
}