C. 文字编辑器

    传统题 1000ms 256MiB

文字编辑器

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

你正在开发一个简单的文本编辑器。给定一段包含 nn 个单词的文本,按输入顺序依次编号为 1,2,,n1, 2, \dots, n,其中第 ii 个单词的长度为 aia_i

你需要将这些单词按顺序排版,每行最多包含 mm 个字符。排版规则如下:

  1. 单词必须按输入顺序依次放置,不能改变顺序。
  2. 在同一行中,两个相邻的单词之间必须至少有一个空格。
  3. 一行中所有单词的长度加上单词之间空格的总长度不能超过 mm
  4. 如果当前行能够放下当前单词(考虑空格),则必须放在当前行;如果放不下,则该单词必须另起一行作为该行的第一个单词。

请计算排版这段文本最少需要多少行。

输入格式

第一行包含两个整数 nnmm,分别表示单词的数量和每行最大字符数。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n,表示每个单词的长度。

输出格式

输出一个整数,表示排版这段文本所需的最少行数。

5 10
3 4 2 5 2
3

样例解释 #1

第一行:放置第 1,21, 2 个单词。总长度为 3+1+4=8103 + 1 + 4 = 8 \le 10。若再放第 33 个单词,长度变为 8+1+2=11>108 + 1 + 2 = 11 > 10,故第一行放 22 个单词。

第二行:放置第 3,43, 4 个单词。总长度为 2+1+5=8102 + 1 + 5 = 8 \le 10。若再放第 55 个单词,长度变为 8+1+2=11>108 + 1 + 2 = 11 > 10,故第二行放 22 个单词。

第三行:放置第 55 个单词。总长度为 2102 \le 10

最终共需 33 行。

数据规模与约定

对于 100%100\% 的数据,1n1051 \le n \le 10^5,1m1061 \le m \le 10^6,1aim1 \le a_i \le m

图灵周赛 Round 44(二场)

未参加
状态
已结束
规则
ACM/ICPC
题目
4
开始于
2026-4-11 19:00
结束于
2026-4-11 22:00
持续时间
3 小时
主持人
参赛人数
16