#HK5426. 「OOI 2017 Day 1」瓦尼亚和夹克

「OOI 2017 Day 1」瓦尼亚和夹克

题目描述

题目译自 Open Olympiad in Informatics 2017 Day1 T4 「Ваня и куртки / Vanya and Jackets

瓦尼亚又一次决定改变生活中的某些东西,这次他决定从提前规划未来 nn 天穿夹克的日程开始。

他阅读了多本关于夹克使用的教程,因此他知道不同的夹克适用于不同的温度范围。对于他的 mm 件夹克中的每一件,他确定了 lil_irir_i,即第 ii 件夹克允许使用的最低和最高温度。

瓦尼亚知道未来 nn 天的天气预报——第 jj 天的温度为 aja_j。由于瓦尼亚认为自己是个理性的人,他会根据天气穿衣,也就是说,在第 jj 天,他可以穿任何满足 liajril_i \leq a_j \leq r_i 的夹克 ii。此外,瓦尼亚认为自己时尚且有品位,因此无论如何都不会连续两天穿同一件夹克。

考虑到瓦尼亚的妈妈不允许他不穿夹克出门或同时穿多件夹克,请为未来 nn 天制定一个穿夹克的日程,满足瓦尼亚的所有要求。

输入格式

输入数据的第一行包含两个数字 nnmm (1n,m100000)(1 \leq n, m \leq 100000),分别表示天数和瓦尼亚衣柜中夹克的数量。

第二行包含 nn 个数字 aia_i (0ai109)(0 \leq a_i \leq 10^{9}),表示第 ii 天的温度。

接下来有 mm 行,第 ii 行包含两个数字 lil_irir_i (0liri109)(0 \leq l_i \leq r_i \leq 10^{9}),表示第 ii 件夹克的温度限制范围。

输出格式

如果存在一种方式为 nn 天中的每一天选择一件夹克,则在第一行输出 Yes,在第二行输出 nn 个数字 bib_i,表示瓦尼亚在第 ii 天应穿的夹克编号。如果不存在这样的安排,则在唯一的一行中输出 No。夹克按照输入数据中的顺序从 11 开始编号。

如果存在多个符合条件的穿夹克日程,可以输出其中任意一个。

4 4
25 25 30 50
10 40
20 30
70 100
50 50

Yes
2 1 2 4

在第一个样例中,除了答案 2 1 2 4 之外,1 2 1 4 也是正确的答案。

4 2
30 40 50 60
30 40
50 60

No

在第二个样例中,无法找到合适的安排,因为瓦尼亚不得不在第一天和第二天都穿第一件夹克。

数据范围与提示

详细子任务附加限制及分值如下表所示。其中子任务 00 是样例。

子任务 分值 附加限制 子任务依赖 备注
11 2020 n,m7n, m \leq 7
22 1919 n,m100n, m \leq 100 010 \sim 1
33 2121 n,m4000n, m \leq 4000 020 \sim 2
44 4040 030 \sim 3