A3374 「POI 2023/2024 R2」Pojemniki

暂无评定 传统题 POI(波兰) 上传者
时间限制7000ms
内存限制256MiB
通过 / 提交0/0

A3374「POI 2023/2024 R2」Pojemniki

暂无评定 传统题 POI(波兰) 上传者
时间限制7000ms
内存限制256MiB
通过 / 提交0/0

题目描述

题目译自 XXXI Olimpiada Informatyczna – II etap Pojemniki

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

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

输入格式

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

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

输出格式

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

若为 TAK,接下来 nn 行描述分配方案。第 ii 行描述第 ii 个容器的内容:以整数 mim_i (0≤mi≤2)(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 升)。第四个容器保持空置。在第五个容器中,我们放入编号为 11 和 33 的物质。前页的图示展示了这种分配方式。左侧为物质的原始体积(以升为单位),右侧为它们在容器中的分配情况。

附加样例

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

数据范围与提示

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

子任务编号 附加限制 分值
11 ai>ka_i > k 的物质最多 11 种 99
22 ai>ka_i > k 的物质最多 22 种 2424
33 n,k≤6n, k \leq 6 1515
44 n≤100n \leq 100 2121
55 无附加限制 3131