AT_joigsc2022_f 空港 (Airport)
题目描述
机场有 $N$ 条跑道,编号从 1 到 $N$。在这个机场,
从起飞开始到结束需要 $K$ 分钟,从着陆开始到结束需要 $L$ 分钟。这连续的 $K$ 或 $L$ 分钟区间内,每架飞机要占用一条跑道。
在机场工作的小J负责制定某 $T$ 分钟内的起飞和着陆计划。区间的开始时刻用时刻 0 表示,从时刻 0 开始经过 $T$ 分钟的时刻用时刻 $T$ 表示。区间结束是时刻 $T$。区间内着陆的是编号从 1 到 $M$ 的 $M$ 架飞机。虽然已经决定让飞机 $a_i(1 \le i \le M)$ 开始着陆,但使用的跑道今后将由小J决定。
另外,由于完全没有确定起飞的时间表,所以起飞的飞机数量、每架飞机的起飞时间和使用的跑道全部由小J决定。
综上所述,日程表必须全部遵守以下规则。
- 不能让多架飞机在一条跑道上同时起飞和着陆。但是,一架飞机起降的同时,同一跑道上允许另一架飞机开始起降。
- 所有的起飞和着陆必须在 $T$ 分钟内完成。也就是说,在 0 点之前的起飞和着陆或在时间 $T$ 之后结束起降都不得开始。
小J在遵守这些规则的基础上,制定了尽可能多的飞机起飞时间表。
给定跑道的数量,着陆的飞机的数量,时间的长短,起飞所需的时间,着陆所需的时间,每架飞机的着陆开始时间时,求区间能从机场起飞的飞机数量的最大值。
但是,在不可能全部遵守规则的情况下,请注意
报告。
输入格式
输入的值都是整数。
$N$ $M$ $T$ $K$ $L$
$a_1$ $a_2$ $a_3$ … $a_M$
输出格式
一个整数表示期间能够从机场起飞的飞机数量的最大值。但是,要遵守规则
在不可能全部遵守的日程表的情况下,输出`-1`。
说明/提示
- $1 \le N,M \le 10^6$。
- $1 \le K,L \le T \le 10^6$。
- $0 \le a_i \le T$。
### 特殊数据点
1. (7分) $N=1$。
1. (12分) $N=2$, $M \le 20$。
1. (17分) $N=2$, $L=2$。
1. (28分) $N$ = 2。
1. (11分) $N \le 100$。
1. (25分) 无附加限制。
### 样例1:
#### 输入:
```
2 4 15 3 2
4 1 5 12
```
#### 输出:
```
5
```
#### 解释:
例如,通过以下日程安排,可以起飞5架飞机。
1. 时刻 0,飞机在跑道 1 上开始起飞。
1. 时刻 1,飞机 2 在跑道 2 上开始着陆。
1. 时刻 4,飞机 1 开始在跑道 2 着陆。
1. 时刻 5,飞机 3 开始在跑道 1 着陆。
1. 时刻 6,飞机在跑道 2 上开始起飞。
1. 时刻 7,飞机在跑道 1 上开始起飞。
1. 时刻 9,飞机在跑道 2 上开始起飞。
1. 时刻 10,飞机在跑道 1 上开始起飞。
1. 时刻 12,飞机 4 在跑道 2 上开始着陆。
无论怎样安排,在全部遵守规定的情况下,起飞的飞机不能超过 5 架。
该输入输出例满足 2、4、5、6 的制约。
### 样例2:
#### 输入:
```
2 6 23 3 6
9 13 1 16 4 8
```
#### 输出:
```
-1
```
#### 解释:
因为不可能制定遵守所有规则的日程表,所以输出 `-1`。
该输入输出例满足 2、4、5、6 的制约。
### 样例3:
#### 输入:
```
1 5 20 2 1
2 8 11 15 5
```
#### 输出:
```
7
```
#### 解释:
该输入输出例满足 1、5、6 的制约。
### 更多样例(见PDF):
[PDF](https://www2.ioi-jp.org/joig-camp/2022/2022-sp-tasks/contest2/airport.pdf)