P14055 [POI 2015 R3] 路标 Direction signs

题目描述

经过一整年的紧张编程,Bajtazar 决定驾车前往 Bajtlandia 度假。路上他经过许多路标,上面标注着到各城市的当前距离(公里,整数)。这些距离是对实际距离向下取整的近似值。度假归来,Bajtazar 总觉得路标信息不太对劲,怀疑有些路标并非专业人员设置,数据可能互相矛盾。他想找出最大的路标集合,使得其信息互不矛盾。由于任务太复杂他想请你帮忙。Bajtazar 记忆力超群,记得所有路标信息,但不清楚它们的具体位置或遇到顺序。 假设 Bajtlandia 是一条直线,城市为直线上的点,足够小可视为点。Bajtazar 旅途中未经过任何城市。路标集合无矛盾,意指可为路标和城市分配坐标,使路标上的向下取整距离符合实际。城市和路标坐标无需为整数,但不得有两城市或两路标重合。Bajtazar 确信,Bajtlandia 的路政人员并非特别无能(他曾亲自监理道路建设),至少 $20\%$ 的路标信息无矛盾。

输入格式

第一行包含两个整数 $n, m (1 \leq n \leq 1000, 1 \leq m \leq 200)$,分别表示 Bajtazar 遇到的路标数和 Bajtlandia 城市数。 接下来的 $n$ 行描述路标,第 $i$ 行包含 $m$ 个整数 $d_{i,1}, d_{i,2}, \ldots, d_{i,m} (1 \leq d_{i,j} \leq 10^6)$,$d_{i,j}$ 表示第 $i$ 个路标上到 $j$ 号城市的向下取整距离(公里)。

输出格式

第一行包含一个整数 $t$,表示信息无矛盾的最大路标数。 第二行包含 $t$ 个整数,按 Bajtazar 遇到的顺序给出这些路标的编号。若有多种方案,输出任意一种。

说明/提示

若第 $2$ 个路标位于 $x=0$,第 $1$ 个路标位于 $x=\frac{1}{2}$,第 $1$ 座城市位于 $x=2\frac{1}{2}$,第 $2$ 座城市位于 $x=3$,则第 $1$ 和第 $2$ 个路标上的距离是实际距离的向下取整。第 $1$ 和第 $3$ 个路标也有合法位置方案。 但第 $2$ 和第 $3$ 个路标互相矛盾,无法找到城市和路标位置使三者同时正确。 ### 附加样例 1. $n=5, m=1$,路标显示到唯一城市的不同取整距离; 2. $n=5, m=2$,每对路标均矛盾,输出任意一个; 3. $n=200, m=199$,所有路标信息无矛盾,例如可将第 $i$ 个路标置于 $\frac{i}{n}$,第 $j$ 座城市置于 $10^6 + \frac{j}{n}$。 ### 数据范围 对于 $20\%$ 的数据,$n \leq 15$。 对于 $40\%$ 的数据,$n \leq 100$。 对于 $60\%$ 的数据,$n \leq 500, m \leq 50$。