Cod sursa(job #961192)
Utilizator | Darie Sergiu primul | Data | 11 iunie 2013 18:27:25 |
---|---|---|---|
Problema | Teren | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.75 kb |
#include <fstream>
using namespace std;
ifstream f("teren.in");
ofstream g("teren.out");
int a[301][301],b[310],nr,st,dr,i,j,m,n,x;
int main()
{
f>>n>>m>>x;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++){
f>>a[i][j];
a[i][j]+=a[i-1][j];
}
int max=0;
for(i=1;i<=n;i++){
for(j=i;j<=n;j++){
st=1;nr=0;
for(dr=1;dr<=m;dr++){
b[dr]=a[j][dr]-a[i-1][dr];
nr+=b[dr];
while(nr>x&&st<dr){
nr-=b[st];
st++;
}
if((j-i+1)*(dr-st+1)>max&&nr<=x)
max=(j-i+1)*(dr-st+1);
}
}
}
g<<max;
return 0;
}