#3874. 兔猫信奥学院·峰巅寻踪

兔猫信奥学院·峰巅寻踪

🐰🐱 兔猫信奥学院·峰巅寻踪

加菲老师给小兔和小猫出了这样一道题:

在一条数字山脉中,数值从左到右先严格上升到一个峰顶,然后严格下降。
学院给出这条山脉的所有数值,要求你用 O(logn)O(\log n) 时间找到峰顶下标(峰顶数值最大的位置)。


输入格式

n
h_1 h_2 … h_n
  • 第一行一个整数 nn,表示山脉长度。
  • 第二行 nn 个非负整数 hih_i,满足:
    • h1<h2<<hph_1 < h_2 < … < h_p
    • hp>hp+1>>hnh_p > h_{p+1} > … > h_n
    • 峰顶位置 pp 满足 2pn12 \le p \le n-1。(即至少有一次上升和一次下降)

输出格式

p

一个整数,表示峰顶在数组中的下标11 起)。


样例

样例 1

3
0 1 0

输出

2

样例 2

4
0 2 1 0

输出

2

数据范围

  • 3n1053 \le n \le 10^5
  • 0hi1060 \le h_i \le 10^6
  • 保证输入构成合法的“山脉数组”。

图示 ▲▲▲▲▲▲▲▲▲▲▲▲

⛰️ 山脉示意图

    /\        ← 峰顶
   /  \
  /    \
 /      \
/        \