#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 3
Yes
1 2 3
3 2 1
2
5
1 2 3 4 5
2 3 4 5 6
3
10 20 30
15 15 15
No
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个。

提示

样例输出不唯一,仅供参考。

Source

思码特OJ编程训练营 http://127.0.0.1