P16461 [UOI 2026] Lazy Student
题目描述
Kozak Vus 是一名大学生。在第一学期,他面临 $n$ 门科目和 $m$ 周的学习。Vus 提前知道了所有的作业,为了方便,他估算了它们的难度。他制作了一张 $n \times m$ 的表格,其中第 $i$ 门科目在第 $j$ 周需要完成一份难度为 $a_{i, j}$ 的作业。注意,整张表格中所有的难度值均**两两不同**。
Vus 将一周的**难度**定义为该周所有科目作业难度的总和。
Vus 假期没有休息够,所以他希望至少学期初不要学得太累。幸运的是,今年学生被允许调整自己的学习计划。Vus 可以执行以下操作至多 $k$ 次:选择一门科目 $i$ 和不同的两周 $j_1$ 与 $j_2$,然后交换这门科目在这两周的作业。于是,在表格中,$a_{i, j_1}$ 与 $a_{i, j_2}$ 交换位置。
Vus 的目标是让第一周的难度尽可能小。如果有多种方式达到这一点,他希望让第二周的难度尽可能小。如果仍有多种方式,则让第三周的难度尽可能小,依此类推。
更形式化地,令 $b_j$ 为第 $j$ 周的难度:
$$b_j = a_{1, j} + a_{2, j} + \dots + a_{n, j}$$
Kozak Vus 希望使用不超过 $k$ 次操作,使得操作后每周难度构成的数组 $B = [b_1, b_2, \dots, b_m]$ 字典序最小。请帮助他找出这个数组。
输入格式
第一行包含三个整数 $n$、$m$、$k$($1 \le n, m \le 1000$,$0 \le k \le 10^9$)—— 行数、列数以及最大操作次数。
接下来的 $n$ 行,每行包含 $m$ 个整数 $a_{i,j}$($1 \le a_{i,j} \le 10^6$,所有 $a_{i,j}$ 两两不同)—— 初始的表格。
输出格式
输出 $m$ 个整数 —— 经过不超过 $k$ 次操作后可以得到的字典序最小的列和数组。
说明/提示
对于第一个样例:
由于 $k = 1$,至多可以执行一次操作。
初始的列和为:
$7 + 6 + 5 = 18$,
$1 + 8 + 2 = 11$,
$3 + 4 + 9 = 16$。
因此初始的和数组为 $[18, 11, 16]$。
为了得到字典序最小的数组,最优做法是在第一行执行一次操作,交换数字 $7$ 和 $1$。
交换后,表格变为:
第一行:$1\ 7\ 3$,
第二行:$6\ 8\ 4$,
第三行:$5\ 2\ 9$。
此时列和为:
$1 + 6 + 5 = 12$,
$7 + 8 + 2 = 17$,
$3 + 4 + 9 = 16$。
所得数组 $[12, 17, 16]$ 是在一次操作能够达到的所有方案中字典序最小的。
对于第二个样例:
初始的列和为:
$9 + 2 + 5 = 16$,
$1 + 8 + 6 = 15$,
$7 + 3 + 11 = 21$,
$4 + 10 + 12 = 26$。
初始的和数组为 $[16, 15, 21, 26]$。
在第一行执行一次操作,交换数字 $9$ 和 $1$,再执行第二次操作,仍然在第一行交换数字 $9$ 和 $4$。于是我们得到如下表格:
$1\ 4\ 7\ 9$
$2\ 8\ 3\ 10$
$5\ 6\ 11\ 12$
列和为 $[8, 18, 21, 31]$。
### 计分
- ($3$ 分):$k = n \cdot m$;
- ($5$ 分):$k = 1$,$n = 1$;
- ($11$ 分):$n = 1$;
- ($13$ 分):各行元素初始按降序排列;
- ($16$ 分):$k \le 10$;
- ($11$ 分):$m = 2$;
- ($16$ 分):$n, m \le 100$;
- ($25$ 分):无额外限制。
翻译由 DeepSeek V4 Pro 完成