EEOJ/OJ3
ClF3 b875e8e62a first commit 2024-07-04 00:37:16 +08:00
..
README.md first commit 2024-07-04 00:37:16 +08:00
main.cpp first commit 2024-07-04 00:37:16 +08:00

README.md

比武

by 郑瑜

时间限制: 1000 ms 内存限制: 5000 KB

问题描述

N个士兵站成一列每个士兵都有一个武力值。对于队伍中任意两个士兵X和Y如果他们在队伍中相邻或者他们之间没有士兵的武力值严格大于X和Y的武力值中的较小值那么他们需要进行一次比武。请计算总共需要进行几次比武。

输入格式

第一行一个整数N代表士兵的总数

第2到第N+1行每行是一个整数表示队伍中从头至尾每个士兵的武力值

输出格式

一个整数,表示比武的次数

输入样例

输入样例1

8

2

7

1

6

5

3

4

2

输入样例2

5

4

2

2

2

5

输出样例

输出样例1

9

输出样例2

10

提示

请使用scanf/printf实现输入/输出

比武的次数可能很大超过int的范围

不同士兵的武力值可能相等

可能用到的结论对于任意士兵Z排在Z前面且武力值比Z小的士兵不会和排在Z后面的士兵比武

对于全部的测试点保证1<=每个士兵的武力值<2^31

1-2测试样例N<=1×10^3

3-4测试样例1×10^3<N<=1×10^4

5-10测试样例1×10^4<N<=5×10^5