luogu#P11502. [ROIR 2019 Day 2] 配对

[ROIR 2019 Day 2] 配对

题目背景

翻译自 ROIR 2019 D2T4

题目描述

宇宙考古科学家在邻近星系的一颗行星上发现了 nn 件古代文物,并将它们编号为 11nn。每件文物有 kk 个不同的参数,每个参数都是一个整数。文物 ii 的参数为 ai,1,ai,2,,ai,ka_{i, 1}, a_{i, 2}, \dots, a_{i, k}。他们惊奇的发现,所有文物的第一个参数都是不同的,即对于所有 iji \neq j,都有 ai,1aj,1a_{i, 1} \neq a_{j, 1}。但是,其他参数可能相同。

科学家们还发现了一段文字,根据这段文字,要激活文物,需要将它们按特定方案配对。称一个配对方案是有效的,当且仅当对于每个 1tk1\le t\le k,可以确定一个数 btb_{t},使其在每对文物的第 tt 个参数值之间。也就是说,在这个配对方案中,对于所有配对的文物 iijj,必须满足 ai,tbtaj,ta_{i, t} \leq b_{t} \leq a_{j, t}ai,tbtaj,ta_{i, t} \geq b_{t} \geq a_{j, t}

现在,科学家们想知道这段文字是否解读正确。为此,你需要需要判断是否存在有效的配对方案,使得所有文物可以两两正确配对。如果可以,你还需要找到这样一个配对方案。

输入格式

第一行输入两个整数 nnkk,表示文物数量和参数数量。

接下来 nn 行,每行包含 kk 个整数 ai,1,ai,2,,ai,ka_{i, 1}, a_{i, 2}, \dots, a_{i, k},表示文物的参数。

输出格式

如果不存在有效的配对方式,输出 NO

否则,第一行输出 YES。接下来 n2\frac n 2 行,每行包含两个整数,表示配对的文物编号。每个文物只能出现一次。

如果有多个合法的配对方案,可以输出任意一个。

6 2
8 6
1 5
6 3
3 1
4 7
7 2
YES
1 4
2 6
3 5
4 3
1 -1 -1
2 1 1
3 -1 1
4 1 -1
NO

提示

样例解释

样例 11 中,一个合法的配对方案为 (8,6)(3,1),(1,5)(7,2),(6,3)(4,7)(8, 6) - (3, 1), (1, 5) - (7, 2), (6, 3) - (4, 7)。此时可以选择 b1=b2=4b_1=b_2=4

数据范围

数据中 Subtask 0 为样例。

子任务 分值 特殊性质
11 1010 n10n\le10
22 77 k=1k=1
33 1515 对于任意 tt,所有 ai,ta_{i,t} 互不相同
44 k2k\le2
55 2626 n400n\le400
66 2727 无特殊性质

对于 100%100\% 的数据,2n2×1052\le n\le2\times10^5nn 为偶数,1k71\le k\le7ai,j109|a_{i,j}|\le10^9,所有 ai,1a_{i,1} 互不相同。