CCF认证 201312-3:最大的矩形(C++)

在这里插入图片描述
在这里插入图片描述

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<vector> 
using namespace std;
const int N=1000;
int a[N],b[N];
int main(){
    int n,i,j,max=0,num;
    cin>>n;
    for(i=0;i<n;i++){
    	cin>>a[i];
    	b[i]=a[i];
	}
	sort(b,b+n);
	max=b[n-1];
	for(i=1;i<=max;i++){
		num=0;
		for(j=0;j<n;j++){
			if(a[j]>=i){
				num+=i;
			}
			if((a[j]<i||j==n-1)&&num!=0){
				if(num>max){
					max=num;
				}
				num=0;
			}
		}
	}
	cout<<max;
    return 0;
}
#include<iostream>
#include<algorithm>
#include<vector> 
using namespace std;
const int maxn=1000;
int a[maxn];int b[maxn];
int main(){
    int n;
    cin>>n;
    vector <int> c;
    for(int i=0;i<n;i++){
        cin>>a[i];
        b[i]=a[i];
    }
    sort(b,b+n);
    int MAX=b[n-1];int size=0;

    for(int i=1;i<=MAX;i++){    int sum=0;
        for(int j=0;j<n;j++){

            if(a[j]>=i){
                sum++;
            }
            if(((a[j]<i)||(j==n-1)) && sum!=0)  //如果断了,或者是到了最后一个,则重新开始即sum=0;
            {
            c.push_back(sum*i);
            size++;
            sum=0;
            }
        }
    }

    int max_c=c[0];
    for(int i=1;i<size;i++){
    if(max_c<c[i])
    max_c=c[i];
    }

    cout<<max_c;
    return 0;
}
发布了81 篇原创文章 · 获赞 14 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_44652687/article/details/105064575
今日推荐