题目描述
题目译自 JOISC 2019 Day1 T3「ナン / Naan」
JOI 咖喱店以提供很长(?)的馕而闻名。它提供的馕有 L 种口味,编号从 1 到 L。「JOI 特色馕」是店内最受欢迎的一道菜。馕的总长度为 L 厘米。我们定义「点 X」为馕上距离馕左端 X 厘米处的点。对于 1≤j≤L,点 j−1 和点 j 间的一段馕是第 j 种口味的。
有 N 个人来到了 JOI 咖喱店,他们每个人的偏好都不同,具体的说,第 i 个人每吃一厘米的风味 j 的馕,就会获得 Vi,j 的快乐度。
他们只买了一个 JOI 特色馕,他们将用下面的方式分享馕:
选择 N−1 个分数 X1,…,XN−1,满足 0<X1<X2<…<XN−1<L。
选择 N 的一个排列 P1,…PN。
对于每一个 k (1≤k≤N−1),在点 Xk 的位置切一刀,然后馕将被切成 N 个部分。
第 k (1≤k≤N) 个部分的左端点为 Xk−1,右端点为 Xk,这里我们认为 X0=0, XN=L。
第 Pi 个人将吃掉第 i 个部分。
现在他们想公平的分配馕,他们认为一种分配方法是公平的,当且仅当每个人获得的快乐度都不小于他们独吞整个馕所获得的快乐度的 N1。
现在给你 N 个人的信息,你需要判断是否存在一种公平的分配方式,如果存在,输出一组分配方案。
输入格式
从标准输入中读取数据。
第一行两个整数 N, L。
接下来 N 行,每行 L 个整数,第 i 行第 j 个数为 Vi,j。
输出格式
输出数据到标准输出中。
如果无解,输出一行 −1;
如果有解,首先输出 N−1 行,第 i 行两个整数 Ai, Bi,要求 Ai, Bi 是一对满足 Xi=BiAi (1≤i≤N) 的整数对。
接下来一行 N 个整数,第 i 个数表示 Pi。
你的输出需要满足:
1≤Bi≤109 (1≤i≤N)。
$0 < \frac{A_1}{B_1} < \frac{A_2}{B_2} < ... < \frac{A_{N-1}}{B_{N-1}} < L$。
P1,...,PN 是一个 1,...,N 的排列。
第 i 个人获得的总快乐度不小于 NVi,1+Vi,2+...+Vi,L (1≤i≤N)。
Ai, Bi 不必互质。
可以证明,如果输入数据有解,那么一定存在一组满足上述条件的解。
样例 1
输入
2 5
2 7 1 8 2
3 1 4 1 5
输出
14 5
2 1
在这组样例中,第一个人如果吃掉整个馕,会得到 2+7+1+8+2=20 的快乐度,第二个人如果吃掉整个馕,会获得 3+1+4+1+5=14 的快乐度。因此,如果第一个人获得不小于 220=10 的快乐度,且第二个人获得不小于 214=7 的快乐度,就是一组合法的解。
如果在点 514 的位置切一刀,第一个人会获得 1×51+8+2=551 的快乐度,第二个人会获得 3+1+4×54=536 的快乐度。因此这是一组合法的解。
样例 2
输入
7 1
1
2
3
4
5
6
7
输出
1 7
2 7
3 7
4 7
5 7
6 7
3 1 4 2 7 6 5
在这组样例中,馕只有一种风味。只要把馕七等分,就是合法的方案,与 P1,...,PN 无关。
样例 3
输入
5 3
2 3 1
1 1 1
2 2 1
1 2 2
1 2 1
输出
15 28
35 28
50 28
70 28
3 1 5 2 4
注意 Ai, Bi (1≤i≤N) 不必互质。
数据范围与提示
| Subtask |
分值 |
数据规模 |
| 1 |
5 |
N=2 |
| 2 |
24 |
N≤6, Vi,j≤10 (1≤i≤N,1≤j≤L) |
| 3 |
71 |
无特殊限制 |
对于所有输入数据,有 1≤N≤2000, 1≤L≤2000, 1≤Vi,j≤105 (1≤i≤N,1≤j≤L)。
Checker by @EntropyIncreaser