2013-12-3最大矩形

100分

 

 

#include<iostream> 
using namespace std;
const int N=1000;

int _min (int a[N],int c,int d)
{
	int min=a[c];
	for(int i=c+1;i<= d;i++)
	{
		if(min>a[i])
		  	min=a[i];
	}
	return min ;
 } 
int main (){

	int a[N];
	int n;
	cin>>n;
	for(int  i=1;i<=n;i++)
	cin>>a[i];
	int max=0;
	int s[N*(N+1)/2];
	for(int j=1;j<=n;j++)
	  for(int k=j,i=0;k<=n;k++,i++)
	  	{s[i]=(k-j+1)*_min(a,j,k);
	  	//cout<<j<<" "<<k<<" "<<_min(a,j,k)<<" "<<s[i]<<endl;
	  	if(max<s[i])
		  	max=s[i];
		}
/*		
	for(int j=1;j<=n;j++)
	  for(int k=j,i=0;k<=n;k++,i++)
			cout<<j<<" "<<k<<" "<<_min(a,j,k)<<" "<<s[i]<<endl;
	int max=s[0];
    for(int  i=1;i<=n*(n+1)/2;i++)
	{
		//cout<<s[i]<<endl;
		if(max<s[i])
		  	max=s[i];
	}
		
	 for(int j=1;j<=n;j++)
	  for(int k=j,i=0;k<=n;k++,i++)
	  cout<<s[i]<<endl;
	  cout <<endl;
	  
	int max=s[0];
	for(int j=1;j<=n;j++)
	  for(int k=j,i=0;k<=n;k++,i++)
	{
		if(max<s[i])
		  	max=s[i];
	}*/
	cout<<max<<endl;
}

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章