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)