P14948 Plants vs Zombies

题目背景

> *There are zombies on your lawn...*

题目描述

有 $n$ 名敌人将会按照顺序拜访你的草坪,第 $i$ 个敌人的血量是 $a_i$。草坪上有 $m$ 个陷阱,对每个 $1 \leq j \leq m$,都有一个计数器 $c_j$ 被设置在第 $j$ 个陷阱上。初始时,所有 $c_j$ 都是 $0$。 每名敌人都会从第 $1$ 个陷阱走到第 $2$ 个陷阱,一直走到第 $m$ 个陷阱。如果在走遍所有陷阱后它尚未死亡,它就会吃掉你的脑子。但与此同时,陷阱对敌人会造成伤害,一个敌人经过一个陷阱时,其血量会减少 $1$,对应陷阱的计数器会增加 $1$。一个敌人死亡,当且仅当它的生命值 **不高于** $0$。此时,它会被埋葬在对其造成对应伤害的陷阱下面,不再移动。 你可以花费一个金币,激活任意一个 $x \in [1, m]$ 的陷阱。激活后,当某名敌人经过陷阱 $x$ 时,$c_x$ 增加 $1$ 时恰好变为 $k$ 的倍数,那么此敌人的血量将会立刻变为 $0$。 你想要知道,最少花费多少个金币,就能防止自己的脑子被敌人吃掉。如果无论如何激活陷阱都不可能,输出 $\texttt{Zombies are on your lawn}$。

输入格式

第一行,三个整数 $n$,$m$ 和 $k$($1 \leq n \leq 100$,$1 \leq m \leq 100$,$\color{red}{1 \leq k \leq 3}$)。 第二行,$n$ 个整数 $a_1, a_2, \ldots, a_n$($1 \leq a_i \leq m + 1$)。

输出格式

输出仅一行一个整数,表示最少花费的金币数目。如果无论如何激活陷阱都不可能,输出 $\texttt{Zombies are on your lawn}$。

说明/提示

对于第一组样例,只激活陷阱 $2$ 是最优的。所有计数器 $c_1, \ldots, c_m$ 的情况如下: - $[1, 0, 0, 0, 0]$; - $[2, 1, 1, 0, 0]$; - $[3, {\color{blue}2}, 1, 0, 0]$; - $[4, 3, 1, 0, 0]$; - $[5, {\color{blue}4}, 1, 0, 0]$。 对于第二组样例,其中一种最优方案是激活陷阱 $1$ 和 $4$。 对于第四组样例,无法保证你的脑子不被吃掉。