P6967 [NEERC 2016] Delight for a Cat
题目描述
一只猫正在进行一次冒险。
每小时,猫可以选择睡觉或吃东西。猫不能在同一小时内同时进行这两种活动,并且猫在整小时内只能进行其中一种活动。
对于接下来的 $n$ 小时,已知猫在每小时内睡觉或吃东西所获得的快乐值。这些值在每小时内可能不同。
还知道一个整数时间段 $k$。在每 $k$ 个连续的小时中,至少有 $m_{s}$ 小时猫在睡觉,至少有 $m_{e}$ 小时猫在吃东西。因此,有正好 $n - k + 1$ 个 $k$ 小时的时间段需要满足这个条件。
求猫在接下来的 $n$ 小时内所能获得的最大总快乐值。
输入格式
输入的第一行包含四个整数 $n, k, m_{s},$ 和 $m_{e}$ $(1 \le k \le n \le 1000$;$0 \le m_{s}, m_{e} \le k$;$m_{s} + m_{e} \le k)$ ——即将到来的小时数、时间段的长度(以小时为单位),以及在每 $k$ 个连续小时中猫至少应该睡觉和吃东西的小时数。
第二行包含 $n$ 个整数 $s_{1}, s_{2}, \ldots, s_{n}$ $(0 \le s_{i} \le 10^{9})$ ——猫在第 1 小时、第 2 小时、$\cdots$、第 $n$ 小时睡觉时获得的快乐值。
第三行包含 $n$ 个整数 $e_{1}, e_{2}, \ldots, e_{n}$ $(0 \le e_{i} \le 10^{9})$ ——猫在第 1 小时、第 2 小时、$\cdots$、第 $n$ 小时吃东西时获得的快乐值。
输出格式
在第一行输出一个整数——猫在接下来的 $n$ 小时内所能获得的最大总快乐值。
在第二行输出一个长度为 $n$ 的字符串,由字符 `S` 和 `E` 组成。这个字符串的第 $i$ 个字符应对应于猫在第 $i$ 小时应该睡觉 $(`S`)$ 还是吃东西 $(`E`)$,以便在这 $n$ 小时内获得最大的总快乐值。
说明/提示
时间限制:2 秒,内存限制:512 MB。
题面翻译由 ChatGPT-4o 提供。