Pagini recente » Cod sursa (job #1635464) | Cod sursa (job #774874) | Cod sursa (job #2582790) | Cod sursa (job #2737587) | Cod sursa (job #638093)
Cod sursa(job #638093)
#include <cstdio>
const int MAX_N = 1005;
int a[ MAX_N ][ MAX_N ], d[ MAX_N ][ MAX_N ], c[ MAX_N ][ MAX_N ], N, M, sol;
void read(){
int i, j;
freopen( "dreptpal.in", "r", stdin );
scanf( "%d %d", &N, &M );
for( i = 1; i <= N; ++i )
for( j = 1; j <= M; ++j )
scanf( "%d", &a[ i ][ j ]);
fclose(stdin);
}
void solve(){
int i, j, l, min;
sol = N;
for( i = 1; i <= N; ++i )
for( j = 1; j <= M; ++j ){
l = 1;
while( j - l >= 1 && j + l <= M && a[ i ][ j - l ] == a[ i ][ j + l ] )
l ++;
d[ i ][ j ] = 2 * ( l - 1 ) + 1;
}
for( i = 1; i <= N; ++i )
for( j = 1; j <= M; ++j )
if( d[ i ][ j ] > 1 ){
min = d[ i ][ j ];
l = 1;
if( d[ i ][ j ] > sol )
sol = d[ i ][ j ];
while( d[ i + l ][ j ] > 1 && i + l <= N ){
if( d[ i + l ][ j ] < min )
min = d[ i + l ][ j ] ;
l ++;
if( min * l > sol )
sol = min * l;
}
}
}
void write(){
freopen( "dreptpal.out", "w", stdout );
printf( "%d\n", sol );
}
int main(){
read();
solve();
write();
return 0;
}