列表

详情


NC21550. 小乐乐跳木桩

描述

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

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


输入描述

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

输出描述

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

示例1

输入:

5
3 3 2 4 5

输出:

4

说明:

在当前样例中,小乐乐不会跳第三个木桩

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++(g++ 7.5.0) 解法, 执行用时: 209ms, 内存消耗: 432K, 提交时间: 2023-07-04 17:29:21

#include <iostream>
using namespace std;
int main()
  
{int a;  
 while(cin>>a){
 
	
	int cnt=0;
	int x=0;
	while(a--){
		int b;
		cin>>b;
		if(b>=x){
			cnt++;
			x=b;
		}
	}
	
	cout<<cnt<<endl;
	
}
	
	
	
	return 0;
}

C(clang 3.9) 解法, 执行用时: 133ms, 内存消耗: 456K, 提交时间: 2018-12-01 13:45:36

#include<stdio.h>
int main()
{
	int n,s=0,t=0,x;
	while(~scanf("%d",&n)){
	for(;n>0;n--){
		scanf("%d",&x);
		if(x>=s){
			t++;
			s=x;
		}
	}
	printf("%d\n",t);
	t=0;
    s=0;
    }
	return 0;
 }

C++11(clang++ 3.9) 解法, 执行用时: 135ms, 内存消耗: 616K, 提交时间: 2018-12-01 17:33:06

#include <stdio.h>

int main()
{
	int n,a,sum,d;
	while(~scanf("%d",&n))
	{
	sum=0;d=0;
	while(n--)
	{
		scanf("%d",&a);
		if(a>=d)
		{
			sum++;d=a;
		}
	}
	printf("%d\n",sum);}
	return 0;
 } 

上一题