#include <bits/stdc++.h>
using namespace std;
int n,m;
int a[1000][1000],b[1000][1000], f[1000][1000];
void nhap()
{
scanf("%d%d",&m,&n);
for (int i=1; i<=m; i++){
for (int j=1; j<=n; j++) scanf("%d",&a[i][j]);
}
}
void tinh_f()
{
for (int i=1; i<=m; i++){
for (int j=1; j<=n; j++)
f[i][j]=f[i-1][j]+f[i][j-1]-f[i-1][j-1]+a[i][j];
}
}
bool check(int i, int j, int x, int y){
int s=(f[x][y]-f[i-1][y]-f[x][j-1]+f[i-1][j-1]);
if (s==0) return true;
else return false;
}
void tim_hcn(int i,int j)
{
int y=j;
while(y<n&&check(i,j,i,y+1))y++;
b[i][j]=(y-j+1);
for (int x=i+1; x<=m; x++)
{
while(y>=j&&!check(i,j,x,y)) y--;
if (y<j) break;
b[i][j]=max(b[i][j],(x-i+1)*(y-j+1));
}
}
void giai()
{
for (int i=1; i<=m; i++)
{
for (int j=1; j<=n; j++)
{
if (a[i][j]==1) b[i][j]=0;
else tim_hcn(i,j);
printf("%d ",b[i][j]);
}
printf("\n");
}
}
int main()
{
freopen("area0.inp","r",stdin);
freopen("area0.out","w",stdout);
nhap();
tinh_f();
giai();
}
* Chuyên dạy lập trình ONLINE cho học sinh THCS, THPT *.
Mọi giao lưu, trao đổi, xin liên hệ: Lê Quang Vinh - zalo: 037.803.8755.
Page: Lớp học Code Sky
Group FB1: Ôn thi HSG9 - THTB - TS10 chuyên tin
Group FB2: Học Scratch - Ôn thi Tin học trẻ bảng A
Thứ Sáu, 13 tháng 5, 2022
AREA0 C++
Đăng ký:
Đăng Nhận xét (Atom)
Không có nhận xét nào:
Đăng nhận xét
Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.