Cod sursa(job #150427)

Utilizator mithyPopovici Adrian mithy Data 6 martie 2008 22:23:45
Problema Teren Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <stdio.h>
#define NMax 100

int n, m, max, ar;
int a[NMax][NMax];
int col[NMax][NMax];

void citire();
void rez();
void process( int x, int y );

int main()
{
	citire();
	rez();
	return 0;
}
void process( int x, int y )
{
	int i, j, arie, vec[NMax], sum[NMax];

	for (i=1; i<=m; i++)
    	 vec[i] = col[y][i] - col[x-1][i];

   sum[0] = 0;
	sum[1] = vec[1];

	for (i=2; i<=m; i++)
   	 sum[i] = sum[i-1] + vec[i];

	for (i=1; i<=m; i++)
   {
      for (j=i; j<=m; j++)
      {
         arie = (y-(x-1)) * (j-(i-1));
         if ( sum[j]-sum[i-1] <= max && ar < arie )
            ar = arie;
      }
   }
}
void rez()
{
	int i, j;

	for (i=1; i<=n; i++)
		for (j=i; j<=n; j++)
			 process( i, j );

	printf( "%d\n", ar );
}
void citire()
{
	int i, j;

	freopen( "teren.in", "rt", stdin );
	freopen( "teren.out", "wt", stdout );

	scanf( "%d %d %d", &n, &m, &max );

	for (i=1; i<=n; i++)
		for (j=1; j<=m; j++)
		{
			scanf( "%d", &a[i][j] );
			col[i][j] = col[i-1][j] + a[i][j];
		}
}