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

    ID: 10075 Type: RemoteJudge 1000ms 512MiB Tried: 0 Accepted: 0 Difficulty: 2 Uploaded By: Tags>贪心Special Judge排序构造

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

题目描述

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

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

输入格式

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

每组数据第一行是一个整数 nn1n1031 \leq n \leq 10^3),表示机器数和订单数。
第二行有 nn 个整数 a1,a2,ana_1, a_2, \dots a_n1ai1041 \leq a_i \leq 10^4),依次表示每台机器工作一天可以生产的锣鼓数量。
第三行有 nn 个整数 b1,b2,bnb_1, b_2, \dots b_n1bi1041 \leq b_i \leq 10^4),依次表示每个订单要求交付的锣鼓数量。

输出格式

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

  • 如果不存在一种方案使得她在接下来的 nn 天里,每天都能交付一个订单,输出一行一个字符串 No
  • 否则输出三行:
    • 第一行输出 Yes
    • 第二行输出 nn 个整数,x1,x2,xnx_1, x_2, \dots x_n,其中 xix_i 表示在第 ii 天使用的机器的编号
    • 第三行输出 nn 个整数,y1,y2,yny_1, y_2, \dots y_n,其中 yiy_i 表示在第 ii 天交付的订单的编号

xix_iyiy_i 必须是 1n1 \sim n 范围内的整数,且每个数字在 xi,yix_i, y_i恰好出现一次。

对于输出 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

提示

样例 1 解释

  • 在第一天使用编号为 11 的机器生产了 33 个锣鼓,交付编号为 33 的订单 33 个锣鼓。
  • 在第二天使用编号为 22 的机器生产了 22 个锣鼓,交付编号为 11 的订单 22 个锣鼓。
  • 在第三天使用编号为 33 的机器生产了 11 个锣鼓,交付编号为 11 的订单 11 个锣鼓。

样例 2 解释

我们解释第二组数据:

  • 在第一天使用编号为 22 的机器,生产了 2020 个锣鼓。交付编号为 11 的订单 1515 个,剩余 55 个;
  • 在第二天使用编号为 11 的机器,生产了 1010 个锣鼓,加上上一天的 55 个,共 1515 个锣鼓,交付编号为 22 的订单 1515 个,剩余 00 个。
  • 在第三天使用编号为 33 的机器,生产了 3030 个锣鼓,共 3030 个锣鼓,交付编号为 22 的订单 1515 个,剩余 1515 个。

提示

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