Cod sursa(job #2715909)

Utilizator biancalautaruBianca Lautaru biancalautaru Data 4 martie 2021 13:10:31
Problema Teren Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb
#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;
}