QOJ.ac

QOJ

時間限制: 8 s 記憶體限制: 1024 MB 總分: 100 互動

#8442. 浆果之战 2

统计

Erik 和他的爷爷经常去森林里采摘蓝莓。爷爷总是能找到最多的浆果,虽然这并不是一场比赛,但 Erik 已经受够了。他观察到爷爷使用一种简单的贪心策略来尽可能多地采摘浆果。有了这些信息,Erik 想要尝试最终采摘到至少和爷爷一样多的浆果。

蓝莓灌木丛可以用一个长度为 $N = 10^5$ 的字符串 $s = s_1s_2 \dots s_N$ 来表示,由字符 .b 组成。如果 $s_i = \text{'b'}$,则表示位置 $i$ 处有一颗浆果,否则该处没有浆果。初始时恰好有 $N/2$ 颗浆果,且它们是均匀随机分布的。

采摘浆果的过程轮流进行。在一次移动中,一个人可以选择一个位置 $i$ ($1 \le i \le N - 3$),并采摘位置 $i, i+1, i+2$ 和 $i+3$ 处的所有浆果。爷爷先手,然后 Erik 移动,以此类推。爷爷总是贪心地选择能采摘到最多浆果的移动方式。在所有这样的移动中,他会均匀随机地选择一个。

给定字符串 $s$,你的任务是编写一个程序,决定 Erik 应该采取什么移动,以便采摘到至少和爷爷一样多的浆果。

图片由 MAKY.OREL 提供,公有领域

交互

输入的第一行包含数字 $N$,即字符串 $s$ 的长度。除了样例之外,该数字始终等于 $10^5$。你的程序不需要解决样例即可通过。

第二行包含长度为 $N$ 的字符串 $s$。该字符串恰好包含 $N/2$ 个字符 b,且它们的位置是均匀随机生成的。

然后,你的程序应开始与交互器进行交互。当轮到爷爷时,你应该读取一个整数 $i$ ($1 \le i \le N - 3$),这意味着爷爷采摘了位置 $i, i+1, i+2$ 和 $i+3$ 处的浆果。当轮到你时,你应该输出一个数字 $i$,这意味着你采摘了位置 $i, i+1, i+2$ 和 $i+3$ 处的浆果。

如果轮到你时已经没有浆果了,你的程序应该终止,不再输出任何内容。如果轮到爷爷时已经没有浆果了,交互器将不再进行任何移动,你的程序也应该终止,不再输出任何内容。

如果你采摘的浆果数量至少和爷爷一样多,你就通过了该测试用例。

每一轮,爷爷都会贪心地选择能采摘到最多浆果的移动方式,并在所有此类移动中均匀随机地选择一个。

字符串 $s$ 是预先生成的,因此在不同的提交中它们是相同的。然而,爷爷的行为在每次提交时都是随机的,所以如果你提交相同的代码两次,可能会得到不同的结果。

总共有 100 个测试用例。保证存在一个以极高概率通过这些测试用例的解法。

样例

在样例中,Erik 和爷爷各得到了 5 颗浆果,这意味着 Erik 实现了他的目标。在游戏开始时,一次移动中可能采摘到的最大浆果数为 3。有 4 种可能的 $i$ 选择可以获得 3 颗浆果:1, 2, 3 和 6。爷爷从中均匀随机选择了一个,结果是 $i = 2$。之后,Erik 选择了 $i = 6$,这也让他获得了 3 颗浆果。在最后两轮中,爷爷和 Erik 都各采摘了两颗浆果。

输入 1

20
.bbb.b.bb...b.b...bb

输出 1

6
17

说明 1

在交互过程中,程序读取爷爷的移动,然后输出自己的移动。上述样例交互中,程序读取了 2,输出了 6,然后读取了 13,最后输出了 17

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.