#P3670. 面包人灭灯泡

面包人灭灯泡

题目描述

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

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

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

注意:所有输入数据中,灯泡状态里至少包含3个0。

输入格式

输入共两行:

  1. 第一行包含两个整数n和k,分别表示灯泡的数量和世界能承受的热量上限。
  2. 第二行包含n个整数,整数之间用空格分隔,第i个整数表示第i个灯泡的状态(0为关,1为开)。

输出格式

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

样例输入1

5 1
0 1 1 0 0

样例输出1

lamp kill the world!

样例输入2

5 3
0 1 1 0 0

样例输出2

2

样例解释

  • 样例1解释:该样例中开启的灯泡数量为2个,面包人每次必须改变3个灯泡的状态,经计算关掉所有灯泡所需的最小操作次数大于1(世界能承受的热量上限),因此世界毁灭,输出指定字符串。
  • 样例2解释:该样例中关掉所有灯泡所需的最小操作次数为2次,2小于等于3(世界能承受的热量上限),因此面包人可以拯救世界,输出最小时间2。

数据范围

  • 30%的数据:0≤k≤n≤100
  • 60%的数据:0≤k≤n≤10000
  • 100%的数据:0≤k≤n≤1000000