[洛谷 202406GESP 模拟 四级] 锣鼓工厂

题目描述

小苏同学是锣鼓工厂的厂长。锣鼓工厂共有 $n$ 台机器,第 $i$ 台机器工作一天可以生产 $a_i$ 个锣鼓。因为环保、资金和保养问题,在接下来的 $n$ 天里,每天只能使用一台机器进行生产,每台机器在 $n$ 天里只能被使用一次。 同时,小苏接到了 $n$ 笔订单,第 $i$ 笔订单要求交付 $b_i$ 个锣鼓。小苏同学想知道,是否存在一种合理安排机器使用和交付订单的顺序,使得她在接下来的 $n$ 天里,每天都能交付一个订单?

输入输出格式

输入格式


**本题单个测试点内有多组测试数据**。第一行是一个整数 $T$($1 \leq T \leq 10$),表示数据组数。对每组数据,按如下格式输入: 每组数据第一行是一个整数 $n$($1 \leq n \leq 10^3$),表示机器数和订单数。 第二行有 $n$ 个整数 $a_1, a_2, \dots a_n$($1 \leq a_i \leq 10^4$),依次表示每台机器工作一天可以生产的锣鼓数量。 第三行有 $n$ 个整数 $b_1, b_2, \dots b_n$($1 \leq b_i \leq 10^4$),依次表示每个订单要求交付的锣鼓数量。

输出格式


对每组数据,输出一行或三行: - 如果不存在一种方案使得她在接下来的 $n$ 天里,每天都能交付一个订单,输出一行一个字符串 `No`。 - 否则输出三行: + 第一行输出 `Yes`。 + 第二行输出 $n$ 个整数,$x_1, x_2, \dots x_n$,其中 $x_i$ 表示在第 $i$ 天使用的机器的**编号**。 + 第三行输出 $n$ 个整数,$y_1, y_2, \dots y_n$,其中 $y_i$ 表示在第 $i$ 天交付的订单的**编号**。 $x_i$ 和 $y_i$ 必须是 $1 \sim n$ 范围内的整数,且每个数字在 $x_i, y_i$ 中**恰好**出现一次。 对于输出 `Yes` 的情况,可能有多种合理的方案,你可以**输出任意一种**。只要你输出的方案是正确且合理的即可得分。

输入输出样例

输入样例 #1

1
3
3 2 1
1 2 3

输出样例 #1

Yes
1 2 3
3 2 1

输入样例 #2

2
5
1 2 3 4 5
2 3 4 5 6
3
10 20 30
15 15 15

输出样例 #2

No
Yes
2 1 3
1 2 3

说明

### 样例 1 解释 - 在第一天使用编号为 $1$ 的机器生产了 $3$ 个锣鼓,交付编号为 $3$ 的订单 $3$ 个锣鼓。 - 在第二天使用编号为 $2$ 的机器生产了 $2$ 个锣鼓,交付编号为 $1$ 的订单 $2$ 个锣鼓。 - 在第三天使用编号为 $3$ 的机器生产了 $1$ 个锣鼓,交付编号为 $1$ 的订单 $1$ 个锣鼓。 ### 样例 2 解释 我们解释第二组数据: - 在第一天使用编号为 $2$ 的机器,生产了 $20$ 个锣鼓。交付编号为 $1$ 的订单 $15$ 个,剩余 $5$ 个; - 在第二天使用编号为 $1$ 的机器,生产了 $10$ 个锣鼓,加上上一天的 $5$ 个,共 $15$ 个锣鼓,交付编号为 $2$ 的订单 $15$ 个,剩余 $0$ 个。 - 在第三天使用编号为 $3$ 的机器,生产了 $30$ 个锣鼓,共 $30$ 个锣鼓,交付编号为 $2$ 的订单 $15$ 个,剩余 $15$ 个。 ### 提示 样例输出不唯一,仅供参考。