Pagini recente » Cod sursa (job #2047636) | Cod sursa (job #3181839) | Cod sursa (job #2763664) | Cod sursa (job #816101) | Cod sursa (job #2715909)
#include <fstream>
using namespace std;
ifstream fin("teren.in");
ofstream fout("teren.out");
int n,m,x,i,j,k,st,dr,s,maxi,sp[301][301];
int main() {
fin>>n>>m>>x;
for (i=1;i<=n;i++)
for (j=1;j<=m;j++) {
fin>>k;
sp[i][j]=sp[i-1][j]+k;
}
for (i=1;i<=n;i++)
for (j=i;j<=n;j++) {
st=1;
s=0;
for (dr=1;dr<=m;dr++) {
s+=sp[j][dr]-sp[i-1][dr]; /// suma din dreptunghiul care are linia de sus i si linia de jos j,
/// marginea din stanga st, marginea din dreapta dr
while (st<=dr && s>x) {
s-=(sp[j][st]-sp[i-1][st]);
st++;
}
if (st<=dr && (j-i+1)*(dr-st+1)>maxi)
maxi=(j-i+1)*(dr-st+1);
}
}
fout<<maxi;
return 0;
}