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$ (有用吗?没什么用)