Pagini recente » Cod sursa (job #1563702) | Cod sursa (job #122695) | Cod sursa (job #677325) | Cod sursa (job #2709019) | Cod sursa (job #637517)
Cod sursa(job #637517)
#include<fstream>
#include<iostream>
#define INF 0x3f3f3f3f
#define Nmax 1005
using namespace std;
long i,j,l,minim=INF,maxim=0,cn,k,n,m,act;
long T1[Nmax][Nmax];
long T2[Nmax][Nmax];
long B[Nmax][Nmax];
int main()
{
ifstream in("dreptpal.in");
ofstream out("dreptpal.out");
in>>n>>m;
for ( i=1; i<=n; ++i)
for ( j=1; j<=m; ++j)
in>>T1[i][j];
for ( i=1; i<=n; ++i )
for ( j=1; j<=m; ++j)
{
cn=T1[i][j];
while (cn)
{
T2[i][j]=T2[i][j]*10+cn%10;
cn/=10;
}
}
for ( i=1; i<=n; ++i)
for ( j=1; j<=m; ++j)
{
act=0;
for ( l=0; j-l>=1 && j+l<=m; ++l)
if ( T1[i][j-l]==T2[i][j+l] )
act++;
else
break;
B[i][j]=act*2-1;
}
for ( i=1; i<=n; ++i)
for (j=1; j<=m; ++j)
{
minim=INF;
for ( l=i; l<=n; ++l)
{
if ( minim > B[l][j])
minim=B[l][j];
if ( minim*(l-i+1) > maxim)
maxim=minim*(l-i+1);
}
}
/* for ( i=1; i<=n; ++i,cout<<"\n")
for ( j=1; j<=m; ++j)
cout<<B[i][j]<<" ";*/
out<<maxim<<"\n";
return 0;
}