Cod sursa(job #1516692)

Utilizator razvandraghiciDraghici Razvan razvandraghici Data 3 noiembrie 2015 13:50:45
Problema Teren Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include<fstream>
using namespace std;
int n, m, a[301][301], i, j, x, ii, jj, maxim, nr, k, l, i1, i2, p, u;
int main()
{
    ifstream f("teren.in");
    ofstream g("teren.out");
    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] + a[i][j-1] - a[i-1][j-1]);
        }

    f.close();

    for (i1 = 1; i1<=n; i1++)
        for (i2=i1;i2<=n;i2++) {
            // cel mai bun dreptunghi asezat pe liniile i1 si i2
            p = 1;
            for (u=1;u<=m;u++) {
                while ( a[i2][u] - a[i2][p-1] - a[i1-1][u] + a[i1-1][p-1]  > x  )
                    p++;
                if ((i2-i1 + 1) * (u-p+1) > maxim)
                    maxim = (i2-i1 + 1) * (u-p+1);
            }

        }


    g<<maxim;
    g.close();
    return 0;
}