#L4993. 「POI 2023/2024 R2」Pojemniki

「POI 2023/2024 R2」Pojemniki

题目描述

题目译自XXII Olimpiada Informatyczna — II etap Trzy Wieże

Bajtazar 经营着一间化学实验室,存放着 nn 种编号从 11nn 的化学物质,第 ii 种物质有 aia_i 升。

Bajtazar 新购置了 nn 个容器,计划将所有物质分配其中。每个容器容量为 kk 升,最多可存放两种物质:要么一种物质最多 kk 升,要么两种物质总量不超过 kk 升。每种物质可任意分割,分配到任意多个容器。你的任务是帮助 Bajtazar 设计分配方案,或判断是否无法分配。

输入格式

第一行包含两个整数 nn, kk (1n1000000(1 \leq n \leq 1000000, 1k1012)1 \leq k \leq 10^{12}),分别表示物质和容器数量,以及每个容器的容量(单位:升)。

接下来的 nn 行,第 ii 行包含一个整数 aia_i (1ai1012)(1 \leq a_i \leq 10^{12}),表示第 ii 种物质的量(单位:升)。

输出格式

第一行输出 TAKNIE,表示是否可按条件分配物质。

若为 TAK,接下来 nn 行描述分配方案。第 ii 行描述第 ii 个容器的内容:以整数 mim_i (0mi2)(0 \leq m_i \leq 2) 开头,表示存放的物质份数,后跟 mim_i 对整数,每对包含物质编号和该物质的升数。

mi=2m_i = 2,两份物质可相同或不同,允许存放 00 升(此时可用更小的 mim_i 等价表示)。

样例

输入:

5 6
1
11
3
4
2

输出:

TAK
2 4 4 2 2
2 5 2 2 3
1 2 6
0
2 1 1 3 3

在第一个容器中,我们放入全部编号为 44 的物质(44 升)和 22 升的编号为 22 的物质,完全填满容器。在第二个容器中,我们放入全部编号为 55 的物质(22 升)和 33 升的编号为 22 的物质,留有一些剩余空间。第三个容器装入编号为 22 的物质的剩余量(66 升)。第四个容器保持空置。在第五个容器中,我们放入编号为 1133 的物质。前页的图示展示了这种分配方式。左侧为物质的原始体积(以升为单位),右侧为它们在容器中的分配情况。

附加样例

  • n=4n=4, k=30k=30a1,a2,a3,a4=29,29,30,31a_1, a_2, a_3, a_4 = 29, 29, 30, 31,答案为 TAK
  • n=100n=100, k=100k=100a1=9900a_1 = 9900ai=1a_i = 1 对于 i1i \neq 1,答案为 TAK
  • n=1000000n=1000000, k=1010+1k=10^{10}+1ai=1010+1ia_i = 10^{10}+1-i 对于 i=1,2,,ni=1, 2, \ldots, n,答案为 TAK

数据范围与提示

详细子任务附加限制及分值如下表所示。

子任务编号 附加限制 分值
1 ai>ka_i > k 的物质最多 11 9
2 ai>ka_i > k 的物质最多 22 24
3 n,k6n, k \leq 6 15
4 n100n \leq 100 21
5 无附加限制 31