Cod sursa(job #2190340)

Utilizator mihaistamatescuMihai Stamatescu mihaistamatescu Data 30 martie 2018 16:33:15
Problema Teren Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <fstream>
using namespace std;
int a[310][310], s[310][310];
int main (){
    ifstream fin ("teren.in");
    ofstream fout ("teren.out");

    fin>>n>>m>>x;
    for (i=1;i<=n;i++) {
        for (j=1;j<=m;j++) {
            fin>>a[i][j];
            s[i][j] = s[i-1][j] + a[i][j];
        }
    }

    for (i1=1;i1<=n;i1++)
        for (i2=i1;i2<=n;i2++) {
            /// am fixat 2 linii si incerc sa caut
            /// dreptunghiuri cu liniile comune cu acestea
            suma = 0;
            st = 1;
            for (dr=1;dr <= m;dr++) {
                suma += s[i2][dr] - s[i1-1][dr];
                while (suma > x) {
                    suma -= s[i2][st] - s[i1-1][st];
                    st++;
                }
            }
            aria = (i2-i1+1) * (dr-st+1);
            if (aria > maxim)
                maxim = aria;
        }
}