首页 > 其他分享 >最大建筑面积(模拟)

最大建筑面积(模拟)

时间:2022-12-07 00:13:18浏览次数:56  
标签:maxx 最大 int res 建筑面积 100 建筑 模拟 1000

现给出一行n个自然数,代表链接建筑的高度,其中高度为0的是地平线,不为零的是建筑,连续的一段相同非零值代表是同一个建筑。现在给这些建筑拍一张照片,输出在这张图片里面积最大的建筑的面积。每个自然数代表宽度1。

输入描述:

第一行输入一个整数n
第二行输入n个整数,代表建筑的高度或地平线hi
1≤n≤1000,0≤hi​≤1000

输出描述:

输出图片里最大面积建筑的面积

示例1

输入

9
0 0 100 100 100 0 200 200 0

输出

400

备注:

1≤n≤1000,0≤hi​≤1000

来源:

牛客竞赛:“可达鸭编程杯”山东大学程序设计精英挑战赛 远航组B题

AC代码:

#include<iostream>
#include<cmath>
using namespace std;

int h[1010];

int main(){
    freopen("in.in" ,"r",stdin); //标准输入
    freopen("out.out","w",stdout); //标准输出
    int n;
    int res = 0;
    int maxx = 0; //记录最大的结果
    cin >> n;
    //读入
    for(int i = 0 ; i < n ; i ++) cin >> h[i];
    res = h[0]; //初始res的值
    for(int i = 1; i < n ; i ++){ //从h[1]开始遍历
        if(h[i] == h[i - 1]) res += h[i]; //判断是否连续并且相同
        else{
            maxx = max(maxx , res); //不连续时,更新结果
            res = h[i]; //不连续,更新res开始的位置
        }
    }
    maxx = max(maxx , res); //最后判断
    cout << maxx << endl; //输出结果
    return 0;
}

标签:maxx,最大,int,res,建筑面积,100,建筑,模拟,1000
From: https://www.cnblogs.com/kk3-share/p/16961879.html

相关文章