Cod sursa(job #2071090)
| Utilizator | Data | 20 noiembrie 2017 11:45:27 | |
|---|---|---|---|
| Problema | Teren | Scor | 20 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.62 kb |
#include <fstream>
using namespace std;
int minim (int n,int m,int p){
if (n<=m&&n<=p)
return n;
if (m<=n&&m<=p)
return m;
return p;
}
int n,m,p,i,j,maxim,x,L[310][310],s[310][310];
int main (){
ifstream fin ("teren.in");
ofstream fout("teren.out");
fin>>n>>m>>p;
for (i=1;i<=n;i++)
for (j=1;j<=m;j++){
fin>>x;
L[i][j]=1+minim(L[i-1][j],L[i][j-1],L[i-1][j-1]);
s[i][j]=s[i][j-1]+s[i-1][j]-s[i-1][j-1]+x;
if (s[i][j]<=p&&L[i][j]*L[i][j]>maxim)
maxim=L[i][j]*L[i][j];
}
fout<<maxim;
}
