U424980 自动换行
题目背景
一天,小明正在做课题时遇到了一个烦恼,他希望他的程序在显示文本时能限制在一个范围内,但他又不想手动给文本换行,于是他找到了你,麻烦你帮他解决问题。
题目描述
首先,我们认为一段文本 $T$ 有一个属性 $size$ ,记作 $T_S$
$T_S$决定了文本 $T$ 在屏幕上占用的$x$,$y$大小。 你需要在特定处为文本换行,使得在限定的$X_{max}$,$Y_{max}$范围内,文本$T$占用的$T_x$,$T_y$之和不应超出$X_{max}$,$Y_{max}$
形式化的,对于数个文本组合$T_i , i = (1,2,3\dots,n-1,n)$在一定的$T_{S}$下,对于给定的$X_{max},Y_{max}$ 你需要将其分为数段,每段间换行,并使得每段满足:
$$
\sum_{i = 1}^{n}T_{i_x} \le X_{max}\\
$$
($n$段中文本数)
同时整个组合满足:
$$
\sum_{i = 1}^{c}\text{max}\{T_{i_y}\} \le Y_{max}
$$
($c$为段数)
输入格式
第一行:四个整数$N,T,X_{max},Y_{max}$其中$X_{max},Y_{max}$见题目描述
接下来$N$行,每行$2 \times T+1$个整数,第一个数代表此行$size$,
接下来$2\times T$个数代表文本$T$占用的空间分别为:$ T_{1_x},T_{1_y},
T_{2_x},T_{2_y},\dots,T_{n_x},T_{n_y}$
输出格式
第一行为一个整数,表示能放下文本的最大$size$。
第二行数列$C_n$,表示文本应该在$C_1,C_2,\dots,C_n$处换行时使得每行文本量最大的同时不超过限制。
说明/提示
#### 样例1说明:
用于数据生成的文本:
```
一二三四?0-——=+{}[]`~·~/-*/*/*
```
换行后:
```
一二三四
?0-——=+{
}[]`~·
~/-*/*/*
```
#### 提示
注意:你有多个$size$可以选择,但不可为不同段文本选择不同的$size$
保证给出的$size$中有解
数据范围
$ 0 \le N \le 10000 $
$0 \le T \le 100000$
$0 \le T_x ,T_y \le 1000$
提示:保证数据中同$size$下存在大量重复的$T_x,T_y$
(有用吗?没什么用)