Cod sursa(job #283552)

Utilizator vlasceanuVlasceanu Razvan vlasceanu Data 19 martie 2009 12:13:13
Problema Teren Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.43 kb
#include <cstdlib>
#include <iostream>
#include <fstream>
using namespace std;




int main(int argc, char *argv[])
{
    int T[300][300];
    int A[900];
    int n,m,k,x;
    int arie_max;
    ifstream fin("teren.in");
    ofstream fout("teren.out");
    fin >> n >> m >> x;
    for (int i=0;i<n;i++)
    {
        for (int j=0;j<m;j++)
        {
            fin >> T[i][j];           
        }
    }
    for (int i =0;i<n;i++)
    {
        for (int j=i+1;j<n;j++)
        {
            if (i!=j) 
            {
              int i1 = min(i,j);
              int j1 = max(i,j);              
              for (int k=0;k<m;k++)
              {
                for (int ii=i1;ii<j1;ii++)
                {
                 A[k]+=T[ii][k];        
                }   
              }
              int st =1;
              int suma =0;
              for (int dr=1;dr<=m;dr++)
              {
                suma+=A[dr];
                while((st<=dr) && (suma >x))
                {
                   suma -= A[st];
                   st++;
                   if (st<=dr)
                   {
                      arie_max = max(arie_max, (j-i+1)*(dr-st+1));         
                   }            
                }
              }                                   
            }                                         
        }        
    }     
    fout << arie_max;      
    return 0;
}