Pagini recente » Cod sursa (job #1522813) | Cod sursa (job #2154152) | Cod sursa (job #2170805) | Cod sursa (job #1546178) | Cod sursa (job #638313)
Cod sursa(job #638313)
#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]==j-k-2)
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;
}