问题描述
明明想在学校中请⼀些同学⼀起做⼀项问卷调查,为了实验的客观性,他先⽤计算机⽣成了
N
个
1到1000
之间的随机整数(
N≤100
),对于其中重复的数字,只保留⼀个,把其余相同的数去掉,不同的数对应着不同的学⽣的学号。然后再把这些数从⼩到⼤排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重
”
与
“
排序
”
的⼯作。
输⼊格式
输⼊有
2
⾏,第
1
⾏为
1
个正整数,表示所⽣成的随机数的个数:N
第
2
⾏有
N
个⽤空格隔开的正整数,为所产⽣的随机数。
输出格式
输出也是
2
⾏,第
1
⾏为
1
个正整数
M
,表示不相同的随机数的个数。第
2
⾏为
M
个⽤空格隔开的正整数,为从⼩到⼤排好序的不相同的随机数。
样例输⼊
10
20 40 32 67 40 20 89 300 400 15
样例输出
8
15 20 32 40 67 89 300 400
#include<iostream>
#include<algorithm>
#include<math.h>
#include<string>
#include <set>
#include <queue>
using namespace std;
int main()
{
int n;
cin>>n;
int a[n];
set<int> s;
for(int i=0;i<n;i++)
{
cin>>a[i];
s.insert(a[i]);
}
cout<<s.size()<<endl;
for(set<int>::iterator it=s.begin();it!=s.end();it++)
{
cout<<*it<<" ";
}
}