#P12712. [KOI 2021 Round 1] 超矩形

    ID: 12498 Type: RemoteJudge 4000ms 1024MiB Tried: 0 Accepted: 0 Difficulty: 3 Uploaded By: Tags>2021Special JudgeKOI(韩国)

[KOI 2021 Round 1] 超矩形

题目背景

试题来源:https://koi.or.kr/archives/。中文翻译做了少量本土化修改。

按照署名—非商业性使用—相同方式共享 4.0 协议国际版进行授权。

题目描述

我们可以考虑 1 维空间中的线段、2 维空间中的矩形、3 维空间中的长方体:

  • 线段的大小可以用变量 AA 表示,其长度为 AA
  • 矩形的大小可以用两个变量 AABB 表示,其面积为 ABA \cdot B
  • 长方体的大小可以用三个变量 AABBCC 表示,其体积为 ABCA \cdot B \cdot C

在四维空间中,可以定义一个由四个变量 AABBCCDD 表示大小的“超矩形”。其“体积”为 ABCDA \cdot B \cdot C \cdot D

起初,变量 AABBCCDD 的值分别为 A0A_0B0B_0C0C_0D0D_0

你有 NN 张“卡牌”,每张卡牌上写有一个字母 TiT_i(在 AABBCCDD 中取一个)和一个正整数 UiU_i,表示该卡牌会使对应变量的值增加 UiU_i。每张卡牌最多只能使用一次,用完即消失。

你希望通过恰好选用 KK 张卡牌(选出的卡牌可以按任意顺序使用),来最大化超矩形的体积。请编写程序,输出一组选牌及使用顺序,使体积最大化。

若存在多种方式达到最大体积,任选其中一种方案输出即可。

输入格式

第一行输入两个整数 NNKK,中间以空格隔开。
第二行输入初始变量值 A0A_0B0B_0C0C_0D0D_0,中间以空格隔开。
接下来的 NN 行中,第 ii 行输入第 ii 张卡牌的内容,即 TiT_iUiU_i,中间以空格隔开。

输出格式

输出 KK 行,依次表示选中的卡牌及其使用顺序,按与输入格式相同的方式给出。

4 3
1 1 1 1
A 1
A 1
A 2
A 2
A 2
A 1
A 2
8 6
1 2 3 4
A 2
A 5
B 7
B 2
C 5
C 9
D 1
D 3
A 2
B 7
C 5
A 5
C 9
D 3

提示

约束条件

  • 所有给定数值均为整数
  • 1KN2000001 \leq K \leq N \leq 200\,000
  • 1A0,B0,C0,D010000001 \leq A_0, B_0, C_0, D_0 \leq 1\,000\,000
  • 对所有 1iN1 \leq i \leq NTi{A,B,C,D}T_i \in \{A, B, C, D\}
  • 对所有 1iN1 \leq i \leq N1Ui10000001 \leq U_i \leq 1\,000\,000

子任务

  1. (8 分)N10N \leq 10A0,B0,C0,D010A_0, B_0, C_0, D_0 \leq 10,且所有 Ui10U_i \leq 10
  2. (6 分)B0=C0=D0=1B_0 = C_0 = D_0 = 1,所有 Ti=AT_i = A
  3. (15 分)N300N \leq 300A0,B0,C0,D0100A_0, B_0, C_0, D_0 \leq 100,所有 Ui100U_i \leq 100
  4. (21 分)所有 Ui=1U_i = 1
  5. (20 分)D0=1D_0 = 1,所有 Ti{A,B,C}T_i \in \{A, B, C\},所有 Ui10U_i \leq 10
  6. (30 分)无附加约束条件