Pagini recente » Diferente pentru documentatie/textile intre reviziile 32 si 33 | Prime | Istoria paginii utilizator/andrici_cezar | Ceva interesant de văzut?:) | Cod sursa (job #2055079)
#include<iostream>
#include<fstream>
#include <queue>
using namespace std;
int main()
{
ifstream in("teren.in");
ofstream out("teren.out");
int n,m,z;
in>>n>>m>>z;
int i,j,k;
int v[301][301];
for (i=1;i<=n;i++)
{
for (j=1;j<=m;j++)
in>>v[i][j];
}
for (j=1;j<=m;j++)
for (i=1;i<=n;i++)
v[i][j]=v[i-1][j]+v[i][j];
int M=0;
int s,x;
int st=0;
queue <int> q;
for (i=1;i<=n;i++)
{
for (j=i;j<=n;j++)
{
while (!(q.empty()))
{
q.pop();
}
s=0;
st=1;
for (k=1;k<=m;k++)
{
x=v[j][k]-v[i-1][k];
s=s+x;
q.push(x);
while (s>z)
{
s=s-q.front();
q.pop();
st++;
}
if ((j-i+1)*(k-st+1)>M)
M=(j-i+1)*(k-st+1);
}
}
}
out<<M;
out.close();
in.close();
return 0;
}