#P3670. 面包人灭灯泡

面包人灭灯泡

题目描述

面包人做的面包因灯泡过热全部烤糊,他因此决定大闹电灯泡工厂。电灯泡工厂共有 nn 个位置,每个位置配有一个电灯泡,灯泡有两种状态:0 表示关闭,1 表示开启。面包人想要关掉所有灯泡,让工厂失去作用以拯救世界。

面包人有三只手,他每次只能且必须改变三个电灯泡的状态(0110)。电源每秒会产生 11 单位的热量,当热量数值达到 kk 时,世界就会毁灭。

请你判断面包人能否拯救世界:如果能,输出他关掉所有灯泡所需的最小时间(即操作次数);如果不能,输出 lamp kill the world!

输入格式

第一行包含两个整数 nnkk,分别表示灯泡的数量和世界能承受的热量上限。

第二行包含 nn 个整数,整数之间用空格分隔,第 ii 个整数表示第 ii 个灯泡的状态(0 为关,1 为开)。

输出格式

如果面包人能拯救世界,输出所需的最小时间;否则输出字符串 lamp kill the world!(不加引号)。

样例

5 1
0 1 1 0 0
lamp kill the world!
5 3
0 1 1 0 0
2

样例解释

  • 样例 1:开启的灯泡数量为 22,每次必须改变 33 个灯泡的状态,无法在 11 次操作内关掉所有灯泡,而热量上限 k=1k=1,所以世界毁灭,输出 lamp kill the world!
  • 样例 2:关掉所有灯泡的最小操作次数为 222k2 \le k,因此面包人可以拯救世界,输出最小时间 22

数据范围

  • 对于 30%30\% 的数据:0kn1000 \le k \le n \le 100
  • 对于 60%60\% 的数据:0kn100000 \le k \le n \le 10000
  • 对于 100%100\% 的数据:0kn1060 \le k \le n \le 10^6

提示

保证输入数据中灯泡的初始状态至少包含 330