#P14055. [POI 2015 R3] 路标 Direction signs

[POI 2015 R3] 路标 Direction signs

题目描述

经过一整年的紧张编程,Bajtazar 决定驾车前往 Bajtlandia 度假。路上他经过许多路标,上面标注着到各城市的当前距离(公里,整数)。这些距离是对实际距离向下取整的近似值。度假归来,Bajtazar 总觉得路标信息不太对劲,怀疑有些路标并非专业人员设置,数据可能互相矛盾。他想找出最大的路标集合,使得其信息互不矛盾。由于任务太复杂他想请你帮忙。Bajtazar 记忆力超群,记得所有路标信息,但不清楚它们的具体位置或遇到顺序。

假设 Bajtlandia 是一条直线,城市为直线上的点,足够小可视为点。Bajtazar 旅途中未经过任何城市。路标集合无矛盾,意指可为路标和城市分配坐标,使路标上的向下取整距离符合实际。城市和路标坐标无需为整数,但不得有两城市或两路标重合。Bajtazar 确信,Bajtlandia 的路政人员并非特别无能(他曾亲自监理道路建设),至少 20%20\% 的路标信息无矛盾。

输入格式

第一行包含两个整数 n,m(1n1000,1m200)n, m (1 \leq n \leq 1000, 1 \leq m \leq 200),分别表示 Bajtazar 遇到的路标数和 Bajtlandia 城市数。

接下来的 nn 行描述路标,第 ii 行包含 mm 个整数 $d_{i,1}, d_{i,2}, \ldots, d_{i,m} (1 \leq d_{i,j} \leq 10^6)$,di,jd_{i,j} 表示第 ii 个路标上到 jj 号城市的向下取整距离(公里)。

输出格式

第一行包含一个整数 tt,表示信息无矛盾的最大路标数。

第二行包含 tt 个整数,按 Bajtazar 遇到的顺序给出这些路标的编号。若有多种方案,输出任意一种。

3 2
2 2
2 3
3 2
2
2 1

提示

若第 22 个路标位于 x=0x=0,第 11 个路标位于 x=12x=\frac{1}{2},第 11 座城市位于 x=212x=2\frac{1}{2},第 22 座城市位于 x=3x=3,则第 11 和第 22 个路标上的距离是实际距离的向下取整。第 11 和第 33 个路标也有合法位置方案。

但第 22 和第 33 个路标互相矛盾,无法找到城市和路标位置使三者同时正确。

附加样例

  1. n=5,m=1n=5, m=1,路标显示到唯一城市的不同取整距离;
  2. n=5,m=2n=5, m=2,每对路标均矛盾,输出任意一个;
  3. n=200,m=199n=200, m=199,所有路标信息无矛盾,例如可将第 ii 个路标置于 in\frac{i}{n},第 jj 座城市置于 106+jn10^6 + \frac{j}{n}

数据范围

对于 20%20\% 的数据,n15n \leq 15

对于 40%40\% 的数据,n100n \leq 100

对于 60%60\% 的数据,n500,m50n \leq 500, m \leq 50