时间限制:C/C++ 2秒,其他语言4秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld
题目描述
化而为鸟,其名为鹏。鹏之背,不知其几千里也。
——《庄子·逍遥游》
HtBest的小鲲长大变成了大鹏,大鹏在天际翱翔,看到了一片绵延的山脉,每座山都有自己的高度,大鹏想穿过这片山脉。由于他只能紧贴地面飞行,他想知道他一共要翻越几次大山(上升->平飞->下降,算一次,其中平飞可以没有),初始时,大鹏在山脉的左端。
输入描述:
第一行一个正整数n,表示山脉被分为n段。i
第二行有n个正整数a
两两之间用空格分开,ai
表示山脉第i段的高度。
输出描述:
一行,包含一个正整数,表示大鹏需要翻越几次大山。
备注:
对于100%的测试数据:i
1 ≤ n ≤ 1000000
1 ≤ a
≤ 1000000000
数据量较大,注意使用更快的输入输出方式。
C/C++:
1 #include <map> 2 #include <queue> 3 #include <cmath> 4 #include <vector> 5 #include <string> 6 #include <cstdio> 7 #include <cstring> 8 #include <climits> 9 #include <iostream> 10 #include <algorithm> 11 #define INF 0x3f3f3f3f 12 using namespace std; 13 const int my_max = 1e6 + 10; 14 15 int my_line[my_max], n, my_ans; 16 17 18 int main() 19 { 20 scanf("%d", &n); 21 for (int i = 0; i < n; ++ i) 22 scanf("%d", &my_line[i]); 23 -- n; 24 for (int i = 1; i < n; ++ i) 25 if (my_line[i] > my_line[i-1] && my_line[i] > my_line[i + 1]) 26 { 27 my_ans ++; 28 i ++; 29 } 30 printf("%d ", my_ans); 31 return 0; 32 }