题目描述
FarmerJohn的 N头奶牛(2<=N<=500)已加入社交络"MooBook"。
每头奶牛都有一个或多个朋友MooBook上与他们互动。
为了好玩,FarmerJohn为他的每头奶牛列出了一个朋友数 量的列表,但是在编写列表的过程中他分心了,他错误地添加了一个额外的数字(所以他的列表包含 N+1个数字,而不是他想 要的 N个数字)。
请帮助 FarmerJohn找出他名单上的哪些数字可能是错误的额外数字。
FJ又有n(1<=n<=500)头奶牛都有一个或一个以上的朋友。
FJ记录每头牛的朋友数,但他傻不小心混入了一个错的数字,请找出。
输入格式
第 1行:整数 N。
第 2..2+N行:第 i+1行包含 FJ的一头奶牛的朋友数,或者可能是额外的错误数。
输出格式
第 1行:一个整数 K,表示 FJ列表中可能是额外数字的条目数(或者,K=0表示列表中没有数字 ,其删除会产生可行的朋友配对)。
第 2..1+K行:每行包含输入排序中的索引 (1..N+1),其中包含可能是额外数字的 FJ列表的数字 −即可以删除的数字使得剩下的 N个数承认一个可行的集合牛之间的友谊。
这些行应按排序顺序排列。
样例
输入样例
4
1
2
2
1
3
输出样例
3
1
4
5
提示
农夫约翰有 4头奶牛。2头牛每人只有 1个朋友,2头牛每人有 2个朋友,1 头牛有 3个朋友(当然,其中一个是多余的,不属于列表)。
删除 FJ列表中的第一个数字(数字 1)得到剩余的列表 2、2、1、3,这确实导 致了可行的友谊配对
--例如,如果我们将奶牛命名为 A..D,那么配对 (A,B)、(A,C)、(A,D)和 (B,C)就足够了,因为 A有 3个朋友,B和 C有 2个朋友,D 有 1个朋友。同样,从 FJ的列表中删除另一个"1"也有效,从 FJ的列表中删除"3"也是 如此。
从 FJ的列表中删除任何一个"2"都不起作用−−我们可以从剩余数字的总和是奇数的事实中看出这一点 ,这显然阻止了我们找到可行的配对。