Cod sursa(job #2734763)

Utilizator un_fes_galbendaniel guba un_fes_galben Data 1 aprilie 2021 12:46:24
Problema Teren Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <fstream>

using namespace std;
bool mat[305][305];
int sum[305][305];
int main()
{
    ifstream fin("teren.in");
    ofstream fout("teren.out");
    int n,m,k;
    fin>>n>>m>>k;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
        {
            fin>>mat[i][j];
            sum[i][j]=sum[i-1][j]+mat[i][j];
        }
    }
    int sum1=0,max1=0,p1;
    int ariemax=0;
    for(int i=1;i<=n;i++)
    {
        for(int j=i;j<=n;j++)
        {
           sum1=0;max1=0;p1=1;
           for(int k1=1;k1<=m;k1++)
           {
               sum1+=sum[j][k1]-sum[i-1][k1];
               while(sum1>k)
               {
                   sum1-=sum[j][p1]-sum[i-1][p1];
                   p1++;
               }
               if(k1-p1+1>max1)
               {
                   max1=k1-p1+1;
               }
           }
           if((j-i+1)*max1>ariemax)
           {
               ariemax=(j-i+1)*max1;
           }
        }
    }
    fout<<ariemax<<'\n';
    return 0;
}