#P14765. [ICPC 2024 Seoul R] Bottles

[ICPC 2024 Seoul R] Bottles

Description

在著名的 ICPC 竞赛中,将有 nn 名选手参加。赛道全长 mm 公里,出于安全考虑,它被划分为 mm 个路段。每个路段长一公里,路段 ii (1im1 \leq i \leq m) 是区间 (i1,i)(i-1, i),即距离起点 i1i-1 公里到 ii 公里之间的路段。我们将忽略选手距离起点恰好为整数公里的情况。由于天气非常炎热,主办方希望提供充足的饮用水。他们将在每个路段维持一定数量的水瓶。当选手拿走一个水瓶时,他们会立即补充一个。他们发现,通过计算比赛中每个路段内同时存在的选手数量的最大值,可以确定该路段最优的水瓶数量。根据每位选手过往的记录,他们预估了每位选手在每个路段将花费的时间(以秒为单位)。

考虑以下例子。有三名选手,赛道长度为六公里。下表显示了选手在每个路段将花费的时间(单位:秒)。

选手 路段 1 路段 2 路段 3 路段 4 路段 5 路段 6
1 350 秒 360 秒 370 秒 380 秒 390 秒 400 秒
2 240 秒
3 480 秒 520 秒 600 秒

现在我们来检查比赛期间每个路段内的选手数量。为了方便,下表并不完整。当你填满整个表格并计算每个路段的最大选手数时,你会发现需要在路段 1 放置 3 瓶水,路段 2 和路段 3 放置 2 瓶,路段 4、5、6 各放置 1 瓶。注意,在 480480 秒时,选手 2 离开路段 2 而选手 3 到达路段 2,这两者都会被忽略,因为他们距离起点的位置恰好是整数公里。在 480480 秒时,没有选手在路段 1 和路段 3,而选手 1 在路段 2。那么,例如,在 481481 秒时,选手 1 和选手 3 将同时在路段 2。

经过时间 路段 1 路段 2 路段 3 路段 4 路段 5 路段 6
(0 秒, 240 秒) 3 0 0 0
(240 秒, 350 秒) 2 1
(350 秒, 480 秒) 1 2
(480 秒, 710 秒) 0 1
(710 秒, 720 秒) 1 2
...

给定选手数量、赛道长度以及每位选手在每个路段将花费的时间,请编写一个程序,计算每个路段需要放置的水瓶数量。

Input Format

你的程序需要从标准输入读取数据。输入的第一行包含两个整数 nnmm (1n1001 \leq n \leq 100, 1m3001 \leq m \leq 300),其中 nn 是选手数量,mm 是赛道长度。接下来的 nn 行中,第 ii 行包含 mm 个正整数,表示选手 ii 在每个路段将花费的时间。更具体地说,该行的第 jj 个数是选手 ii 在路段 jj 将花费的时间。任何选手在任何路段花费的时间都不会超过 10,00010,000 秒。

Output Format

你的程序需要向标准输出写入结果。输出恰好一行。该行应包含从路段 1 到路段 mm 每个路段需要放置的水瓶数量。

3 6
350 360 370 380 390 400
240 240 240 240 240 240
480 480 520 600 600 600
3 2 2 1 1 1
4 5
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
4 4 4 4 4
3 5
1 1 1 1 1
5 5 5 5 5
25 25 25 25 25
3 1 1 1 1