Cod sursa(job #1293592)

Utilizator ZeBuGgErCasapu Andreas ZeBuGgEr Data 16 decembrie 2014 08:31:31
Problema Teren Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <fstream>

using namespace std;

long long int ma=0;

bool a[300][300];

int check(int r,int c,int n,int m,long long int x)
{
    long long int co=0;
    for(int i=r;i<n;i++)
    {
        for(int j=c;j<m;j++)
        {
            if(a[i][j]==1)
            {
                co++;
            }
            if(co>x)
            {
                return 0;
            }
        }
    }
    return 1;
}

void leave(int r,int c,int n,int m,long long int x)
{
    if(n!=0&&m!=0&&r<n&&c<m)
    {
    if(check(r,c,n,m,x)==1)
    {
        if(ma<(n-r)*(m-c))
        {
            ma=(n-r)*(m-c);
        }
    }
    else
    {
        leave(r,c,n-1,m,x);
        leave(r,c,n,m-1,x);
        leave(r+1,c,n,m,x);
        leave(r,c+1,n,m,x);
    }
    }
}

int main()
{
    ifstream fin("teren.in");
    ofstream fout("teren.out");
    int n,m;
    long long int x;
    fin>>n>>m>>x;
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
        {
            fin>>a[i][j];
        }
    }
    leave(0,0,n,m,x);
    fout<<ma;
}