Cod sursa(job #2311880)

Utilizator stefan1anubystefan popa stefan1anuby Data 3 ianuarie 2019 20:01:10
Problema Teren Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.25 kb
#include <fstream>

using namespace std;
ifstream cin("teren.in");
ofstream cout("teren.out");
int n,m,k,v[305][305],a[305];
void read()
{
    int i,j,x;
    cin>>n>>m>>k;
    for(i=1; i<=n; i++)
    {
        for(j=1; j<=m; j++)
        {
            cin>>x;
            v[i][j]=v[i-1][j]+x;
        }
    }
}
void afis(int vec[])
{
    int i;
    for(i=1; i<=m; i++)
        cout<<vec[i]<<" ";
    cout<<endl;
}
void solve()
{
    int i,j,d,st,dr,sum,arie_max=0;
    {
        for(i=1; i<=n; i++)
        {
            for(j=i; j<=n; j++)
            {
                for(d=1; d<=m; d++)
                    a[d]=v[j][d]-v[i-1][d];
                /*cout<<i<<" pana la "<<j<<" : ";
                afis(a);*/
                st=1;
                sum=0;
                for(dr=1; dr<=m; dr++)
                {
                    sum+=a[dr];
                    while(st<=dr && sum>k)
                    {
                        sum-=a[st];
                        st++;
                    }
                    if(st<=dr)
                        arie_max=max(arie_max,(j-i+1)*(dr-st+1));
                }
            }
        }
    }
    cout<<arie_max;
}
int main()
{
    read();
    solve();
    return 0;
}