Cod sursa(job #677751)

Utilizator DEYDEY2Tudorica Andrei DEYDEY2 Data 10 februarie 2012 16:42:15
Problema Teren Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<fstream>
#include<queue>
using namespace std;
int n,m,x,A,S[301][301];
int i,j,rez;
int l1,l2,suma,nre,a,v;
ifstream f("teren.in");
ofstream g("teren.out");
queue <int> Q;
int main()
{
	f>>n;
	for(i=1;i<=n;i++)
		for(j=1;j<=m;j++)
		{
			f>>A;
			S[i][j]=S[i-1][j]+A;
		}
	rez=0;
	for(l1=1;l1<=n;l1++)
		for(l2=l1;l2<=n;l2++)
		{
			while(!Q.empty())
				Q.pop();
			nre=suma=0;
			for(i=1;i<=m;i++)
			{
				v=S[l2][i]=S[l1-1][i];
				Q.push(v);
				nre++;
				suma+=v;
				while(suma>x)
				{
					a=Q.front();
					Q.pop();
					suma-=a;
					nre--;
				}
				if(nre*(l2-l1+1)>rez) rez=nre*(l2-l1+1)>rez; 
			}
		}
	g<<rez<<'\n';
	f.close();
	g.close();
	return 0;
}