#HK4985. 「POI 2024/2025 R3」Szum

「POI 2024/2025 R3」Szum

题目描述

题目译自 XXXII Olimpiada Informatyczna – III etap Szum

Bitek 发明了一种新颖的二进制序列加密方案,专门处理长度为 nn 的二进制序列 a1,a2,,ana_1, a_2, \ldots, a_n。他将序列转化为一个长度为 n+1n+1 的整数序列 b1,b2,,bn+1b_1, b_2, \ldots, b_{n+1},其中 bib_i 表示原序列中位置 11i1i-111 的个数,减去位置 iinn11 的个数。

为了向好友 Bajtek 证明该方案的容错能力,Bitek 并未直接发送序列 b1,b2,,bn+1b_1, b_2, \ldots, b_{n+1},而是发送了一个稍有偏差的序列 c1,c2,,cn+1c_1, c_2, \ldots, c_{n+1},满足 $\left|b_1 - c_1\right| + \left|b_2 - c_2\right| + \ldots + \left|b_{n+1} - c_{n+1}\right| \leq k$,其中 kk 是一个容错参数。Bajtek 现在需要验证这个序列 c1,c2,,cn+1c_1, c_2, \ldots, c_{n+1} 是否有效,即是否能由某个二进制序列 a1,a2,,ana_1, a_2, \ldots, a_n 通过上述方式生成。

你的任务是找到一个二进制序列 a1,a2,,ana_1, a_2, \ldots, a_n,能够生成符合条件的序列 c1,c2,,cn+1c_1, c_2, \ldots, c_{n+1},或者明确指出这样的序列不存在。

输入格式

第一行包含两个整数 n,kn, k (1n200000,0k200)(1 \leq n \leq 200000, 0 \leq k \leq 200),分别表示二进制序列长度和容错参数。

第二行包含 n+1n+1 个整数 cic_i (109ci109)(-10^9 \leq c_i \leq 10^9),表示接收到的序列。

输出格式

若不存在满足条件的二进制序列 a1,,ana_1, \ldots, a_n,输出 NIE

否则,第一行输出 TAK,第二行输出 nn 个整数 a1,a2,,ana_1, a_2, \ldots, a_n,以空格分隔,表示一个符合条件的二进制序列。若存在多种解,输出任意一种。

4 1
-2 0 0 0 1

TAK
1 0 0 1

4 0
-2 -1 0 0 1

NIE

附加样例

  1. n=200000,k=200n=200000, k=200,对于奇数 iici=100001+ic_i = -100001 + i,对于偶数 iici=100000+ic_i = -100000 + i

数据范围与提示

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

子任务编号 附加限制 分值
11 n10n \leq 10 1010
22 n300n \leq 300 1414
33 k10k \leq 10 2626
44 无附加限制 5050