Problem2658--一维数组+桶数据结构练习 - 有哪些人没有被喊到?

2658: 一维数组+桶数据结构练习 - 有哪些人没有被喊到?

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 128 MB

Description

有n个人,每个人的编号从1,2,直到n
输入一个n
接下来有n个整数形成的序列A,
序列A中,第 i 个数字记为a[i]它的含义是:第i个人准备喊出a[i],但,只有当第i个人没有被喊过时,才可以喊a[i],否则什么也不会发生。
要求打印出有没有被喊出的id的数量,以及,按从小到大将这些id输出。
例如:
输入:
5
3 1 4 5 4
则输出:
2
2 4
模拟过程如下:
A序列为:3 1 4 5 4
第1个数字是3,表示第1个人准备喊3,这时,因为第1个人没有被喊过,所以它成功地喊出3,
第2个数字为1,表示第2个人准备喊1,这时,因为第2个人没有被喊过,所以它成功地喊出1,
第3个数字是4,表示第3个人准备喊4,但,此前第3个人已被喊过了,所以它不能喊4,于是4没有被喊出;

第4个数字为5,表示第4个人准备喊5,这时,因为第4个人没有被喊过,所以它成功地喊出5,

第5个数字是4,表示第5个人准备喊4,但,此前第5个人已被喊过了,所以它不能喊4,于是4没有被喊出;
你看,最后,有2个人没有被喊过,分别是2 和 4,所以答案是:
2
2 4





Sample Input Copy

5
3 1 4 5 4

Sample Output Copy

2
2 4

Source/Category