QOJ.ac

QOJ

时间限制: 1 s 内存限制: 512 MB 总分: 100

#11078. 书的边界

统计

正在使用等宽字体和一种简单的贪心算法对一本书进行排版。书的内容仅仅是一个单词序列,其中每个单词包含一个或多个字符。

在排版之前,我们选择一个最大行长,并用 $m$ 表示该值。每一行最多可以包含 $m$ 个字符,包括单词之间的空格。排版算法只是简单地逐个处理单词,并在同一行的两个连续单词之间恰好打印一个空格。如果将单词打印在当前行会超过最大行长 $m$,则会另起一行。

最大行长分别为 13 和 14 时的示例输入文本排版效果

给定一段需要排版的文本,你正在尝试不同的最大行长 $m$。对于固定的 $m$,首句是由从上到下每一行的第一个单词组成的句子(由单个空格分隔的单词序列)。在上面的例子中,当示例文本以最大行长 14 排版时,首句是 “its to you n”。

给定一段文本和两个整数 $a$ 和 $b$,求最大行长在 $a$ 到 $b$(包含 $a$ 和 $b$)之间时,每一个候选最大行长对应的首句长度。句子的长度是它包含的字符总数,包括空格。

输入格式

第一行包含需要排版的文本——一个由单个空格分隔的单词序列。每个单词都是由一个或多个小写英文字母组成的字符串。

第二行包含两个整数 $a$ 和 $b$——我们感兴趣的区间的边界,如上所述。

保证 $1 \le w \le a \le b \le z \le 500\,000$,其中 $w$ 是文本中最长单词的长度,$z$ 是文本的总字符数(包括空格)。

输出格式

输出 $b - a + 1$ 行——第 $k$ 行应包含一个整数,即当最大行长等于 $a - 1 + k$ 时的首句总长度。

样例

输入 1

its a long way to the top if you wanna rock n roll
13 16

输出 1

22
12
12
15

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.