小乐乐跳木桩 哈尔滨理工大学软件与微电子学院第八届程序设计竞赛同步赛(低年级)
链接: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;
}