#P3670. 面包人灭灯泡
面包人灭灯泡
题目描述
面包人做的面包因灯泡过热全部烤糊,他因此决定大闹电灯泡工厂。电灯泡工厂共有n个位置,每个位置配有一个电灯泡,灯泡有两种状态:0表示关闭,1表示开启。面包人想要关掉所有灯泡,让工厂失去作用以拯救世界。
面包人有三只手,他每次只能且必须改变三个电灯泡的状态(0变1、1变0)。电源每秒会产生1单位的热量,当热量数值达到k时,世界就会毁灭。
请你判断面包人能否拯救世界:如果能,输出他关掉所有灯泡所需的最小时间(即操作次数);如果不能,输出lamp kill the world!。
注意:所有输入数据中,灯泡状态里至少包含3个0。
输入格式
输入共两行:
- 第一行包含两个整数n和k,分别表示灯泡的数量和世界能承受的热量上限。
- 第二行包含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