#3599. wrap

wrap

折行

时间限制:1.0 s1.0\text{ s}

空间限制:64 MiB64\text{ MiB}

题目描述

车站的信息屏需要依次显示一组提示词。屏幕的每一行恰好有 mm 个字符格,排版程序会按照输入顺序放置 nn 个只含小写英文字母的单词。

排版规则如下:

  1. 单词不能拆到两行中;
  2. 一行中的第一个单词从该行第一个字符格开始;
  3. 同一行内相邻两个单词之间恰好留一个空格;
  4. 处理一个新单词时,若它连同前面的一个空格可以完整放入当前行,就把它放在当前行;否则放弃当前行剩余的字符格,从下一行开头放置这个单词。

保证每个单词自身都能放入一行。

所有单词排完后,没有被字母或单词间空格占用的字符格称为未使用字符格。最后一行末尾的空格也要计入。

请你求排版一共使用了多少行,以及所有行中未使用字符格的总数。

输入格式

第一行两个正整数 n,mn,m,分别表示单词数量和每行字符格数。

第二行依次给出 nn 个仅含小写英文字母的单词。

输出格式

输出一行两个整数,依次表示使用的行数和未使用字符格总数。

输入样例 1

6 10
red blue green gold a map

输出样例 1

3 7

样例 1 解释

三行内容依次为:

red blue
green gold
a map

三行分别剩余 2,0,52,0,5 个字符格,共剩余 77 个。

输入样例 2

5 5
a bb cc ddddd e

输出样例 2

4 8

输入样例 3

见附件 sample/wrap3.in

输出样例 3

见附件 sample/wrap3.out

数据范围

对于所有测试点,保证:

  • 1≤n≤5×1051\le n\le 5\times 10^5;
  • 1≤m≤1001\le m\le 100;
  • 每个单词只含小写英文字母,长度在 [1,m][1,m] 内;
  • 所有单词的长度之和不超过 5×1065\times 10^6。
测试点编号 分值 特殊性质
1∼41\sim 4 2020 n≤100n\le 100,m≤20m\le 20
5∼85\sim 8 所有单词长度均为 11
9∼129\sim 12 所有单词长度均大于 m/2m/2
13∼2013\sim 20 4040 无

每个测试点单独计分。