QOJ.ac

QOJ

Limite de temps : 8 s Limite de mémoire : 256 MB Points totaux : 100

#11485. 笔记本电脑

Statistiques

Bajtogrod 的学校里,所有学生都使用相同的笔记本电脑。学校的一间教室里有几张相同的课桌,它们一张接一张地排列(每张课桌都比前一张离黑板稍远)。课间休息前,有 $n$ 名学生来到教室,他们以某种方式坐在课桌旁,每人都拿出了自己的笔记本电脑。课间休息后,又有 $m$ 名学生进入教室。

老师希望每位学生都能坐在课桌旁并拿出自己的笔记本电脑。可能有多名学生坐在同一张课桌旁,但同一张课桌上的笔记本电脑不能前后放置(否则会遮挡屏幕),也不能叠放。为了最大限度地降低跌落风险,任何笔记本电脑都不能超出课桌边缘。笔记本电脑的边缘必须与课桌边缘平行(不能“斜着”放置)。

形式上,我们可以将课桌看作平面上尺寸为 $w \times s$ 的矩形(其中 $w$ 是平行于黑板的边长),将笔记本电脑看作尺寸为 $d \times s$ 的矩形(其中 $s < d \le w$)。每个笔记本电脑矩形必须完全包含在课桌矩形内,且任意两个笔记本电脑矩形不能有公共点。

在初始的 $n$ 名学生中,有多少人必须移动(换到另一张课桌或在同一张课桌内移动位置),才能使所有 $n + m$ 名学生都能带着他们的笔记本电脑坐在课桌旁?将某人及其笔记本电脑的移动视为一次操作,无论该学生是只移动了一点点,还是换到了教室里完全不同的位置。

考虑多个独立的查询($m$ 的值可能不同)。如果对于某个查询,所有学生无法带着笔记本电脑坐在课桌旁,请指出这一点。

输入格式

输入的第一行包含五个正整数 $n, q, d, l, w$ ($1 \le q \le n \le 3000, 1 \le l \le 3000, 1 \le d, w \cdot l \le 10^{18}$)。这些数字依次表示:已经坐在课桌旁的学生人数;查询次数;每台笔记本电脑的长度;课桌数量;每张课桌的长度。课桌编号为 $1$ 到 $l$,学生编号为 $1$ 到 $n$。

接下来的 $n$ 行,每行包含两个整数 $k_i, p_i$ ($1 \le k_i \le l, 0 \le p_i \le w-d$,对于 $i = 1, \dots, n$),表示第 $i$ 位学生所坐的课桌编号,以及其笔记本电脑左边缘距离该课桌左端的距离。保证初始的学生及其笔记本电脑的放置满足题目条件。

接下来的一行包含 $q$ 个整数 $m_1, \dots, m_q$ ($1 \le m_i \le 10^{18}$),描述对程序的查询——第 $i$ 个数字表示一个场景,即在第 $i$ 个查询中,有 $m_i$ 名学生进入教室,此时教室里已有上述放置好的 $n$ 名学生。每个查询都是独立的。

输出格式

你的程序应输出 $q$ 行。第 $i$ 行应包含一个整数,作为第 $i$ 个查询的答案。如果无论学生如何移动,都无法使所有人带着笔记本电脑坐在课桌旁,则结果应为 $-1$。否则,结果应为必须移动的学生的最少人数,以使所有 $n + m_i$ 名学生都能坐在课桌旁。

尽管初始位置 $p_i$ 是整数,但学生可以移动到非整数位置。

样例

样例输入 1

4 3 3 2 10
2 1
1 2
1 6
2 5
2 1 3

样例输出 1

2
1
-1

说明 1

对于第一个查询:如果第二位学生向左移动到第一张课桌的左端,第四位学生移动到第二张课桌的右端,即可满足条件,如下图所示。

子任务

测试集分为以下子任务。每个子任务的测试由一组或多组独立的测试用例组成。

Podzadanie Warunki Liczba punktów
1 $n \le 20$ 17
2 $n \le 500$ 34
3 $n \le 3000$ 49

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.