#2995. Distributing Parts

Distributing Parts

题目描述

* 注意 本题包含special judge

你是一部新音乐剧的助理导演。这部音乐剧包含 nn 个音乐角色,每个角色必须由恰好一名演员来演绎。

试镜结束后,导演挑选了 mm 名可参与这部剧的演员。你的任务是将这些角色分配给演员。不过,分配过程存在一些限制条件。

首先,每位演员都有特定的音域范围,有些角色的音域超出了其能力范围,因此该演员无法演唱这些角色。

具体来说,对于每位演员,有两个整数 cic_i 和 did_i(满足 ci≤dic_i \leq d_i),分别代表该演员能演唱的最低音高和最高音高。

对于每个角色,同样有两个整数 aja_j 和 bjb_j(满足 aj≤bja_j \leq b_j),分别代表该角色所包含的最低音高和最高音高。

只有当 ci≤aj≤bj≤dic_i \leq a_j \leq b_j \leq d_i 时,即角色的所有音高都在演员的音域范围内,第 ii 名演员才能演绎第 jj 个角色。

根据合同规定,第 ii 名演员最多只能演绎 kik_i 个角色。此外,你可以不将任何角色分配给某些演员(这些演员届时将参与群众场景的演出)。

排练将在两小时后开始,你需要尽快完成角色分配工作!

输入格式

第一行包含一个整数 nn,表示音乐剧中的角色数量(1≤n≤1051 \leq n \leq 10^5)。

接下来 nn 行,每行包含两个用空格分隔的整数 aja_j 和 bjb_j ,分别表示第jj个角色的音高范围(1≤aj≤bj≤1091 \leq a_j \leq b_j \leq 10^9)。

再下一行包含一个整数 mm,表示参与该剧的演员数量(1≤m≤1051 \leq m \leq 10^5)。

接下来 mm 行,每行包含三个用空格分隔的整数 cic_i、did_i 和 kik_i,分别表示第 ii 名演员的音域范围以及该演员最多可演绎的角色数量(1≤ci≤di≤1091 \leq c_i \leq d_i \leq 10^9,1≤ki≤1091 \leq k_i \leq 10^9)。

输出格式

如果存在满足上述所有条件的角色分配方案,在第一行输出一个单词 YES。

在第二行输出 nn 个用空格分隔的整数,其中第 ii 个整数表示负责演绎第 ii 个角色的演员编号。若存在多种正确的分配方案,输出任意一种即可。

如果不存在符合条件的分配方案,输出一个单词 NO。

输入输出样例 #1

输入 #1

3
1 3
2 4
3 5
2
1 4 2
2 5 1

输出 #1

YES
1 1 2

输入输出样例 #2

输入 #2

3
1 3
2 4
3 5
2
1 3 2
2 5 1

输出 #2

NO