P1316 明明的随机数
来源:互联网 发布:广州白云电气知乎 编辑:程序博客网 时间:2024/05/22 19:31
描述
明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。
格式
输入格式
输入有2行,第1行为1个正整数,表示所生成的随机数的个数:
N
第2行有N个用空格隔开的正整数,为所产生的随机数。
输出格式
输出也是2行,第1行为1个正整数M,表示不相同的随机数的个数。第2行为M个用空格隔开的正整数,为从小到大排好序的不相同的随机数。
样例1
样例输入1[复制]
1020 40 32 67 40 20 89 300 400 15
样例输出1[复制]
815 20 32 40 67 89 300 400
用到两个泛型算法(包含在头文件<algorithm>中):p342.
1.sort:调用sort会重排输入序列的元素,使之有序,它是利用元素类型的<运算符来实现排序的,sort算法接受两个迭代器,表示要排序元素的范围。
2.unique:unique算法重排输入序列,将相邻的重复项“消除”,并返回一个不重复值范围末尾的迭代器。打引号是因为unique并不真的删除任何元素,它只是覆盖xiangl 的重复元素,使得不重复元素出现在序列开始部分,unique返回的迭代器指向最后一个不重复元素之后的位置。此位置之后的元素仍然存在,但我们不知道它们的值是什么。
由于算法不能执行容器的操作,我们将用vector的erase成员来完成真正的删除操作。
Note:标准库算法对迭代器而不是容器进行操作。因此,算法不能(直接)添加或删除元素。
#include<iostream>#include<vector>#include<algorithm>using namespace std;int main(){int n, val;vector<int> v;while (cin >> n){while (n--&&cin >> val){v.push_back(val);}sort(v.begin(), v.end());auto end_unique = unique(v.begin(), v.end());v.erase(end_unique, v.end());cout << v.size() << endl;for (auto c : v)cout << c << ' ';}return 0;}
0 0
- P1316 明明的随机数
- [Vijos]P1316 明明的随机数
- water~~~明明的随机数
- 1341. 明明的随机数
- 【模拟】明明的随机数
- 【模拟】明明的随机数
- 1342 明明的随机数
- 明明的随机数
- 明明的随机数
- 明明的随机数
- 明明的随机数
- 明明的随机数
- 1002. 明明的随机数
- 明明的随机数
- 明明的随机数
- 明明的随机数
- 明明的随机数
- 明明的随机数
- Android基础第六篇(下)
- 41. First Missing Positive
- Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist
- iptables lokkit
- 《多线程简单介绍》
- P1316 明明的随机数
- 常用的实用类(Scanner类、Date类、Canlendar类)
- 数据库的方向 - 行vs列
- SQL中DATENAME函数的用法
- TCP/IP系列基础概念(一)
- (二)Servlet就是这样—Servlet中Response和Request
- ASP.NET : F5刷新重复提交的问题
- 开源思维导图工具KityMinder
- Html5语义化标签