EEOJ/OJ3/README.md

66 lines
1.2 KiB
Markdown
Raw Normal View History

2024-07-03 16:37:16 +00:00
# 比武
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