Cod sursa(job #3137829)

Utilizator maryyMaria Ciutea maryy Data 15 iunie 2023 09:58:04
Problema Teren Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.3 kb
#include <fstream>

using namespace std;
ifstream in("teren.in");
ofstream out("teren.out");
bool a[301][301];
int sp[301][301];
int main()
{
    int n, m, x;
    in>>n>>m>>x;
    for(int i=1; i<=n; i++)
    {
        for(int j=1; j<=m; j++)
        {
            in>>a[i][j];
            sp[i][j]=sp[i][j-1]+sp[i-1][j]-sp[i-1][j-1]+a[i][j];
        }
    }
    int ariemax=0, arie, stricate;
    int i, j;
    for(int lin1=1; lin1<=n; lin1++)
    {
        for(int lin2=lin1; lin2<=n; lin2++)
        {
            i=1; j=1;
            stricate=0;
            while(i<=m)
            {
                //stricate+=sp[lin2][j]-sp[lin2][i-1]-sp[lin1-1][j]+sp[lin1-1][i-1];
                while(j<=m && stricate<=x)
                {
                    stricate+=sp[lin2][j]-sp[lin1-1][j]-sp[lin2][j-1]+sp[lin1-1][j-1];
                    j++;
                    if(stricate<=x)
                    {
                        arie=(lin2-lin1+1)*(j-i);
                        if(arie>ariemax)
                        {
                            ariemax=arie;
                        }
                    }
                }
                stricate-=sp[lin2][i]-sp[lin2][i-1]-sp[lin1-1][i]+sp[lin1-1][i-1];
                i++;

            }
        }
    }
    out<<ariemax;
}