Pagini recente » Cod sursa (job #1276012) | Cod sursa (job #365670) | Cod sursa (job #1811762) | Cod sursa (job #1916417) | Cod sursa (job #638307)
Cod sursa(job #638307)
#include<fstream>
using namespace std;
int a[1010][1010],c[1010][1010];
int main(void){
ifstream fin("dreptpal.in");
ofstream fout("dreptpal.out");
int i,j,n,m,j1,j2,min,max,r;
fin>>n>>m; max=n;
for(i=1;i<n+1;++i)a[i][0]=a[i][m+1]=-1;
for(i=1;i<m+1;++i)a[0][i]=a[n+1][i]=-1;
for(i=1;i<=n;++i)
for(j=1;j<=m;++j)fin>>a[i][j]; fin.close();
for(i=1;i<=n;++i)
for(j=1;j<=m;++j)
if(a[i][j-1]==a[i][j+1]){
j1=j-1; j2=j+1;
while(a[i][j1]==a[i][j2]){ c[i][j1]=j2-j1+1; --j1; ++j2; }
}
i=j=1;
while(i<=m){
j=1;
while(j<=n){
if(c[j][i]>0){
min=c[j][i]; if(min>max)max=min;
j1=j; r=1;
while(c[j1+1][i]==min || (c[j+1][i]<min && c[j][i+2]>0) && j1<n){
if(c[j1+1][i]<min)min=c[j1+1][i];
++j1; ++r;
if(r*min>max)max=r*min;
}
j=j1;
}
++j;
}
++i;
}
fout<<max; fout.close();
return 0;
}