#P17348. PM1158 HillHike
PM1158 HillHike
题目描述
一名徒步旅行者准备翻越一座山。向导只提供了以下信息:山的最大高度、从山脚一侧走到另一侧的水平距离,以及沿途若干地标的高度和它们出现的先后顺序。
整条山路只由以下三种地形组成,并且每一种地形持续的水平长度都是整数米:
- 上升地形:每水平前进 米,高度上升 米;
- 水平地形:每水平前进 米,高度不变;
- 下降地形:每水平前进 米,高度下降 米。
设整条山路的水平长度为 ,最大高度为 。山路从高度 开始,并在水平前进恰好 米后回到高度 。
给定 个地标,其高度依次为 。这些地标在山路上必须按照给定顺序出现,并且任意两个地标所在位置的水平距离至少为 米。地标的具体水平坐标并未给出,只要求存在一种放置方式满足这些条件。
一条山路是合法的,当且仅当同时满足:
- 起点高度为 ,终点高度也为 ;
- 除起点和终点外,山路上的任何位置高度都严格大于 ;
- 山路至少有一个位置的高度恰好为 ;
- 山路上的高度从不超过 ;
- 可以在山路上按顺序放置所有给定地标,使第 个地标所在位置的高度为 ,且不同地标之间至少相隔 米。
一条山路可以看成长度为 的地形序列,每一米分别选择“上升”“水平”或“下降”。如果两条山路在至少一个水平单位区间上的地形类型不同,则认为它们是不同的山路。
请计算合法山路的数量。如果不存在合法山路,输出 。
输入格式
第一行输入三个整数 ,分别表示地标数量、山路的水平长度和山的最大高度。
若 ,第二行输入 个整数 ,按地标在山路上出现的顺序给出它们的高度;若 ,则不存在地标数据。
输出格式
输出一个整数,表示满足所有条件的合法山路数量。
保证答案不超过 。
数据范围与约定
- ;
- ;
- ;
- ;
- 答案不超过 。
输入输出样例 #1
输入
0 5 2
输出
3
输入输出样例 #2
输入
0 2 45
输出
0
输入输出样例 #3
输入
2 5 2
2 2
输出
1
输入输出样例 #4
输入
4 8 3
2 2 3 1
输出
7
样例说明
对于样例 #1,水平长度为 、最大高度为 ,且没有地标限制,共有 条合法山路。互为镜像的两条山路仍被视为不同方案。
对于样例 #3,两个地标的高度都为 。由于两个地标不能放在同一个位置,因此只有能够在两个不同水平位置依次经过高度 的山路才可能合法,最终只有 种方案。