#P2168. Joke with Turtles
Joke with Turtles
题目描述
有一个著名的儿童谜语笑话: 三只乌龟在一条路上爬行。一只乌龟说:“我前面有两只乌龟。” 另一只乌龟说:“我后面有两只乌龟。” 第三只乌龟说:“我前面有两只乌龟,后面也有两只乌龟。” 这是怎么回事呢? 答案是 —— 第三只乌龟在说谎! 现在的问题是:有 只乌龟在一条路上爬行。其中一些乌龟在同一位置爬行,因此它们看不到同组乌龟的前方或后方。每只乌龟做出形如 “我前面有 只乌龟,后面有 只乌龟” 的陈述。你的任务是找出必须说谎的乌龟的最小数量。 我们将问题形式化:乌龟 的坐标为 (可能有多个乌龟坐标相同)。当且仅当 等于坐标 的乌龟数量,且 等于坐标 的乌龟数量时,乌龟 说真话,否则它在说谎。
输入
第一行输入整数 。接下来 行,每行包含两个数 和 ,描述第 只乌龟( 从 到 )的陈述。
输出
第一行输出整数 m—— 必须说谎的乌龟的最小数量, followed by m 个整数 —— 说谎的乌龟的编号(顺序任意)。若存在多个解集,输出任意一个即可。
输入数据 1
5
0 2
0 3
2 1
1 2
4 0
输出数据 1
2 1 4
来源
Northeastern Europe 2004