QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 1024 MB Total points: 10

#10236. 工作 [B]

Statistics

Potyczki Algorytmiczne 已经开始了!不幸的是,Bajtazar 不能忽视他的工作,他的职责也不会在比赛周期间神奇地消失。我们可以将 Bajtazar 的一天看作 $n$ 个时间段,每个时间段持续一小时(bajtogodzina)。每个时间段的职责属于以下三类之一: 1. 办公室会议, 2. 远程会议, 3. 无职责。

在一天中,Bajtazar 可能在家里、办公室或往返于两者之间的路上。Bajtazar 在家里开始和结束他的一天。他最多可以去一次办公室,前提是他能在第 $n$ 小时结束前回到家。从家到办公室以及从办公室到家的路程各需要恰好 $t$ 小时。根据他所在的位置,Bajtazar 可以采取不同的行动: 在家:Bajtazar 当然不能参加办公室会议,他可以(但不必须)参加远程会议,或者他可以解决 Potyczki Algorytmiczne 的远程比赛题目(但不能在参加会议的同时解决题目)。 在路上:Bajtazar 不能参加任何会议,也不能解决题目——他必须专注于开车(他雇不起司机)。 * 在办公室:Bajtazar 可以参加任何类型的会议,而在会议之外的时间他必须工作——此时他不能解决题目。

你的任务是规划 Bajtazar 的一天,以最大化他解决题目的总小时数。然而,如果 Bajtazar 错过的会议超过 $k$ 场,他可能会被解雇。那样的话,他参加明年比赛的机会,就像许多其他生活琐事一样,将变得悬而未决——我们不希望这样。

Bajtazar 非常有条理,因此在每个时间段内他只专注于做一件事,特别是往返于家和办公室的行程需要他占用恰好 $t$ 个连续的时间段。

输入格式

第一行包含三个整数 $n, k$ 和 $t$ ($3 \le n \le 8000, 0 \le k \le n, 1 \le t < \frac{n}{2}$),分别表示时间段总数、Bajtazar 可以错过的会议数量,以及往返于家和办公室单程所需的时间(以小时为单位)。

第二行包含一个长度为 $n$ 的字符串,由字符 1、2 或 3 组成,表示 Bajtazar 在一天中各个时间段的职责类型。字符对应于文中提到的类别编号。

输出格式

输出一个整数,表示在不超过 $k$ 次缺席的情况下,Bajtazar 可以用来解决题目的总小时数。如果无法在不超过 $k$ 次缺席的情况下完成任务,则输出 $-1$。

样例

输入 1

10 1 2
3233313132

输出 1

3

输入 2

7 0 2
3313233

输出 2

0

输入 3

6 5 1
231323

输出 3

6

输入 4

4 1 1
1331

输出 4

-1

说明

样例解释:在第一个样例中,一种最优方案是 Bajtazar 按以下方式度过一天: 1. 解决题目 2. 在家参加远程会议 3. 解决题目 4. 去办公室的路上 5. 去办公室的路上 6. 办公室会议 7. 回家的路上 8. 回家的路上(错过一场会议) 9. 解决题目 10. 在家参加远程会议

在这个计划中,Bajtazar 恰好错过了一场会议,并解决了 3 小时的题目。

在第二个样例中,Bajtazar 不会丢掉工作的唯一计划如下: 1. 去办公室的路上 2. 去办公室的路上 3. 办公室会议 4. 在办公室工作 5. 在办公室参加远程会议 6. 回家的路上 7. 回家的路上

在第三个样例中,Bajtazar 可以整天待在家里,解决题目并跳过所有远程会议。

在第四个样例中,Bajtazar 无法参加办公室会议,因为他无法及时赶到或无法及时从办公室回到家。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.