小乐乐跳木桩 哈尔滨理工大学软件与微电子学院第八届程序设计竞赛同步赛(低年级)

版权声明:版权声明,使用请说明出处 https://blog.csdn.net/qq_41835683/article/details/84677560

链接:https://ac.nowcoder.com/acm/contest/302/B
来源:牛客网
 

题解:需要更新最大值(小乐乐不会跳低于这个值的木桩),每次跟最大值比,每次更新最大值。纽克怎么喜欢多组输入了。。wa到怀疑人生,结果竟然是多组输入,吐血。qwq

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 65536K,其他语言131072K
64bit IO Format: %lld

题目描述

小乐乐看其他的小朋友都会走路了之后,自己心里十分的不甘心,也想要学会走路,而且还要比他们走的更好!

    现在有n个木桩,小乐乐打算挑战一下这些木桩。小乐乐从第一个木桩开始跳,假如小乐乐跳过了当前高度为a[i]的木桩,那么在后面的木桩中,小乐乐就不会再走比a[i]矮的木桩了(毕竟人往高处走)。当走完最后一节木桩时,小乐乐高兴坏了,急着要向其他小朋友去炫耀自己的战果。但是小乐乐已经忘了自己走过多少节木桩了,现在小乐乐可怜巴巴的瞅着你,你能帮他计算一下他一共走了多少节台阶了吗?

输入描述:

多组样例输入。第一行一个数字n(1 <= n <=
100000),代表所有的木桩。第二行有n个由空格隔开的数字,对于每个数字a[i], (1 <= a[i] <= 100000)。

输出描述:

输出一个整数,代表小乐乐跳过的木桩数量。

示例1

输入

复制

5
3 3 2 4 5

输出

复制

4

说明

在当前样例中,小乐乐不会跳第三个木桩
#include <iostream>
using namespace std;
const int maxn=1e6+5;
int a[maxn];
int main(){
    int n;
    while(cin>>n){
        for(int i=0;i<n;i++){
            cin>>a[i];
        }
        int ans=0;
        int maxn=a[0];
        for(int i=1;i<n;i++){
            if(a[i]<maxn)
                ans++;
            maxn=max(maxn,a[i]);
        }
        cout<<n-ans<<endl;
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_41835683/article/details/84677560