F. 白彝双坊扎染与刺绣

    Type: Default File IO: dye 1000ms 256MiB

白彝双坊扎染与刺绣

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

白彝双坊:扎染与刺绣

题目背景

在云南大理与楚雄交界的非遗产业园中,有一家联合工坊,内设两个独立生产单元:

  • 白族扎染坊:专做扎染围巾、桌布等。每件作品需先在靛蓝染缸(A₁ 车间)浸染 a_i 小时,再移至扎染晾晒架(B₁ 车间)风干 b_i 小时。
  • 彝族刺绣坊:专做刺绣挎包、服饰等。每件作品需先在绣架区(A₂ 车间)刺绣 a_j 小时,再移至刺绣定型台(B₂ 车间)压平 b_j 小时。

两个工坊物理隔离、资源独立

  • 扎染坊只有 1 口染缸 + 1 个晾晒架;
  • 刺绣坊只有 1 个绣架 + 1 个定型台。

因此,扎染订单之间相互竞争扎染坊资源,刺绣订单之间相互竞争刺绣坊资源,但两类订单互不影响

今日,工坊共接到 n 份订单,其中部分为扎染(类型 0),部分为刺绣(类型 1)。为响应“雨季前完成生产”的号召,工坊希望尽早让两个车间都完工,以便腾出场地举办民族文化节。

请你分别安排扎染和刺绣订单的加工顺序,使得两个工坊全部完工的总时间最短

文化注解

  • 白族扎染依赖自然光照,晾晒时间长;
  • 彝族刺绣讲究针脚密度,绣制耗时久;
  • “双坊并行”是云南非遗产业化中“分类生产、协同运营”的创新模式。

输入格式

第一行一个整数 n(1 ≤ n ≤ 10000),表示订单总数。

接下来 n 行,每行三个整数 t_i, a_i, b_i,表示第 i 份订单:

  • t_i ∈ {0, 1}0 表示扎染,1 表示刺绣;
  • a_i(1 ≤ a_i ≤ 1000):A 车间(染缸/绣架)所需时间(小时);
  • b_i(1 ≤ b_i ≤ 1000):B 车间(晾晒/定型)所需时间(小时)。

输出格式

5 行

  • 第 1 行:一个整数,表示两个工坊全部完工的最短总时间(单位:小时)。
  • 第 2 行:一个整数,表示扎染坊的完成时间
  • 第 3 行:若干个整数(用空格分隔),表示扎染订单的最优加工顺序(输出原始订单编号,按输入顺序从 1 开始)。若无扎染订单,输出空行。
  • 第 4 行:一个整数,表示刺绣坊的完成时间
  • 第 5 行:若干个整数(用空格分隔),表示刺绣订单的最优加工顺序(输出原始订单编号)。若无刺绣订单,输出空行。

样例输入

5
0 3 6
1 5 2
1 8 1
0 7 4
1 10 9

样例输出

24
14
1 4
24
5 2 3

样例说明

可以证明这是最优速度

数据范围

  • 1n100001 \leq n \leq 10000
  • 1ai,bi10001 \leq a_i, b_i \leq 1000
  • ti{0,1}t_i \in \{0, 1\}
  • 保证至少存在一个扎染订单和一个刺绣订单