#P0796. 公告留新版
公告留新版
题目描述
训练营的公告墙上贴着一排便签,每张便签都有一个编号。
有些编号会出现很多次,表示同一条通知被老师更新了好几版。对于同一个编号,只有最后贴上去的那一张才是最新版,前面旧版本都应该被拿掉。
现在从左到右给出公告墙上所有便签的编号。请你整理公告墙:
- 每个编号只保留最后一次出现的那张便签;
- 被保留下来的便签仍然按照原来在公告墙上的左右顺序排列;
- 不要改变任何便签之间的相对顺序。
请输出整理后还剩下哪些便签。
输入格式
第一行输入一个整数 n,表示便签数量。
第二行输入 n 个整数 a_i,表示从左到右每张便签的编号。
输出格式
第一行输出一个整数 x,表示整理后剩下的便签数量。
第二行输出 x 个整数,表示整理后的便签编号。
样例 1
6
1 5 5 1 6 1
3
5 6 1
样例 2
5
2 4 2 4 4
2
2 4
样例说明
样例 1 中:
- 编号
1最后一次出现在第 6 个位置; - 编号
5最后一次出现在第 3 个位置; - 编号
6只出现了一次。
所以整理后从左到右为:
5 6 1
数据范围
- 对于
60%的数据,1 <= n <= 5000 - 对于
100%的数据,1 <= n <= 100000,1 <= a_i <= n