Cod sursa(job #497150)

Utilizator vlad.doruIon Vlad-Doru vlad.doru Data 1 noiembrie 2010 19:15:49
Problema Teren Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <fstream>

using namespace std;

ifstream in("teren.in");
ofstream out("teren.out");

int n,m,x,ariecurent,ariemax=0;
int a[300][300];
int aux[300][300];

void prelucrare(){
	int i,j,k,up,down,count;
	for(i=1;i<=m;i++){
		for(j=i;j<=m;j++){
			ariecurent=0;
			up=1;
			down=0;
			count=0;
			while(up<=n){
				while(down<=n && count<=x){
					down++;
					ariecurent=ariecurent+j-i+1;
					count+=aux[down][j]-aux[down][i];
				}
				ariecurent=ariecurent-j+i-1;
				if(ariecurent>ariemax)
					ariemax=ariecurent;
				up++;
				count-=aux[down][j]-aux[down][i];
			}
		}
	}
	out<<ariemax;
}

int main(){
	int i,j;
	in>>n>>m>>x;
	for(i=1;i<=n;i++){
		for(j=1;j<=m;j++){
			in>>a[i][j];
			aux[i][j]=aux[i][j-1]+a[i][j];
		}
	}
	prelucrare();
	return 0;
}