[洛谷 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$ 个。
### 提示
样例输出不唯一,仅供参考。