Problem Z: STL 函数使用 —— unique()
[Creator : ]
Description
【介绍】
【头文件】
Standard Template Library: Algorithms#include<algorithm>
【作用】
Remove consecutive duplicates in range
Removes all but the first element from every consecutive group of equivalent elements in the range [first,last).
equality (1) template <class ForwardIterator> ForwardIterator unique (ForwardIterator first, ForwardIterator last); predicate (2) template <class ForwardIterator, class BinaryPredicate> ForwardIterator unique (ForwardIterator first, ForwardIterator last, BinaryPredicate pred);
【任务】
我们通过本题,掌握 unique() 函数使用方法。给一个长度为 $n$ 的数列,数列中可能有若干相同数据,从小到大输出不同数据。
Input
第一行一个整数 $n\ (1 \leq n \leq 5\times 10^5)$。
第二行包括 $n$ 个整数 $a_i\ (-10^9 \leq a_i \leq 10^9)$。
第二行包括 $n$ 个整数 $a_i\ (-10^9 \leq a_i \leq 10^9)$。
Output
第一行输出一个整数,表示数组 $a$ 包含多少个不同的数据 $m$。
第二行包括 $m$ 个完全不同数据。
第二行包括 $m$ 个完全不同数据。
Sample 1 Input
9
10 20 20 20 30 30 20 20 10
Sample 1 Output
3
10 20 30
Sample 2 Input
5
5 4 3 2 1
Sample 2 Output
5
1 2 3 4 5