#G4022. [GESP 模拟 四级] 锣鼓工厂
[GESP 模拟 四级] 锣鼓工厂
Description
小苏同学是锣鼓工厂的厂长。锣鼓工厂共有n台机器,第i台机器工作一天可以生产ai个锣鼓。因为环保、资金和保养问题,在接下来的n天里,每天只能使用一台机器进行生产,每台机器在n天里只能被使用一次。
同时,小苏接到了n笔订单,第i笔订单要求交付bi个锣鼓。小苏同学想知道,是否存在一种合理安排机器使用和交付订单的顺序,使得她在接下来的n天里,每天都能交付一个订单?
Input Format
本题单个测试点内有多组测试数据。
第一行是一个整数T(1≤T≤10),表示数据组数。对每组数据,按如下格式输入:
每组数据第一行是一个整数n(1≤n≤1000),表示机器数和订单数。
第二行有n个整数a1,a2,…an(1≤ai≤10000),依次表示每台机器工作一天可以生产的锣鼓数量。
第三行有n个整数b1,b2,…bn(1≤bi≤10000),依次表示每个订单要求交付的锣鼓数量。
Output Format
对每组数据,输出一行或三行:
- 如果不存在一种方案使得她在接下来的n天里,每天都能交付一个订单,输出一行一个字符串
No。 - 否则输出三行:
- 第一行输出
Yes。 - 第二行输出n个整数,x1,x2,…xn,其中xi表示在第i天使用的机器的编号。
- 第三行输出n个整数,y1,y2,…yn,其中yi表示在第i天交付的订单的编号。
- 第一行输出
xi和yi必须是1∼n范围内的整数,且每个数字在xi,yi中恰好出现一次。
对于输出Yes的情况,可能有多种合理的方案,你可以输出任意一种。只要你输出的方案是正确且合理的即可得分。
1
3
3 2 1
1 2 3Yes
1 2 3
3 2 1
2
5
1 2 3 4 5
2 3 4 5 6
3
10 20 30
15 15 15No
Yes
2 1 3
1 2 3
Hint
说明/提示
样例 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个。
提示
样例输出不唯一,仅供参考。