#1295. 汰换合同

内存限制:512 MiB 时间限制:1000 ms 标准输入输出
题目类型:传统 评测方式:文本比较
上传者: Leohh

题目描述

在CS:GO中,使用汰换合同可以将多个低品质的武器换成一个高品质的武器。现在Leohh的库存中共有 个武器,从左到右摆成一列,第 个武器的品质值为 。对于第 个和第 个武器来说 ,若满足它们的品质值相同即 ,则可以使用汰换合同,用武器 换回来一个品质值为 的武器,新武器放在武器 原来的位置。

为了方便操作,每次汰换时,Leohh会先确定一个最小的品质值 满足至少有两个武器的品质值等于 ,然后在所有品质值等于 的武器中,挑最靠左的两个进行汰换。Leohh并不知道自己会血赚还是血亏,所以想问问你,如果不断地使用汰换合同直到不能汰换(即不存在两把品质值相同的武器),最终会剩下多少个武器,这些武器的品质值分别是什么?

输入格式

第一行一个整数 ,表示武器的数量

第二行 个整数 ,表示武器的品质值

输出格式

第一行一个整数 ,表示最终剩下武器的数量

第二行 个整数,表示最终剩下武器的品质值

样例

样例输入

8 
1 4 2 4 3 2 5 1

样例输出

5
8 3 4 5 2

数据范围与提示

样例解释: