# 官方题解|欢乐赛#39 T5
2025-01-22 17:14:10
发布于:浙江
37阅读
0回复
0点赞
T5
本题先要预处理出前缀最大值,可以先开一个数组 , 表示 ~ 里面的最大值。最后只要看当前山的高度是否比前面的最高的山的高度高即可,如果满足题目要求那么这座山上就能看到海。
#include <bits/stdc++.h>
using namespace std;
   
const int N = 200010;
int a[N], n, m, k;
int maxn[N];
int main(){
    cin >> n;
    for(int i = 1; i <= n; i ++ ){
        cin >> a[i];
        if(i == 1) maxn[i] = a[i];
        else{
            maxn[i] = max(maxn[i - 1], a[i]);
        }
    }
    int ans = 1;
    for(int i = 2; i <= n; i ++ ){
        if(a[i] >= maxn[i]) ans ++;
    }
    cout << ans << endl;
    return 0;
}
这里空空如也

有帮助,赞一个