问题 S: [洛谷 202406GESP 模拟 四级] 锣鼓工厂

内存限制:256 MB 时间限制:2 S
题面:传统 评测方式:文本比较 上传者:
提交:0 通过:0

题目描述

小苏同学是锣鼓工厂的厂长。锣鼓工厂共有 n 台机器,第 i 台机器工作一天可以生产 ai 个锣鼓。因为环保、资金和保养问题,在接下来的 n 天里,每天只能使用一台机器进行生产,每台机器在 n 天里只能被使用一次。

同时,小苏接到了 n 笔订单,第 i 笔订单要求交付 bi 个锣鼓。小苏同学想知道,是否存在一种合理安排机器使用和交付订单的顺序,使得她在接下来的 n 天里,每天都能交付一个订单?

输入格式

本题单个测试点内有多组测试数据。第一行是一个整数 T1T10),表示数据组数。对每组数据,按如下格式输入:

每组数据第一行是一个整数 n1n103),表示机器数和订单数。
第二行有 n 个整数 a1,a2,an1ai104),依次表示每台机器工作一天可以生产的锣鼓数量。
第三行有 n 个整数 b1,b2,bn1bi104),依次表示每个订单要求交付的锣鼓数量。

输出格式

对每组数据,输出一行或三行:

  • 如果不存在一种方案使得她在接下来的 n 天里,每天都能交付一个订单,输出一行一个字符串 No。
  • 否则输出三行:
    • 第一行输出 Yes。
    • 第二行输出 n 个整数,x1,x2,xn,其中 xi 表示在第 i 天使用的机器的编号
    • 第三行输出 n 个整数,y1,y2,yn,其中 yi 表示在第 i 天交付的订单的编号

xi 和 yi 必须是 1n 范围内的整数,且每个数字在 xi,yi 中恰好出现一次。

对于输出 Yes 的情况,可能有多种合理的方案,你可以输出任意一种。只要你输出的方案是正确且合理的即可得分。

输入样例 复制

输入 #1
1
3
3 2 1
1 2 3
输入 #2
2
5
1 2 3 4 5
2 3 4 5 6
3
10 20 30
15 15 15

输出样例 复制

输出 #1
Yes
1 2 3
3 2 1
输出 #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 个。

提示

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