【P1059 [NOIP2006 普及组] 明明的随机数

#include
using namespace std;
int main()
{
	int n;
	cin >> n;
	int a[105];
	for (int i = 0; i < n; i++)
		cin >> a[i];
	sort(a, a + n);
	int cnt;
	cnt= unique(a, a + n)-a;
	cout << cnt << endl;
	for (int i = 0; i < cnt; i++)
		cout << a[i] << " ";
	return 0;
}

题目描述

明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了NN个11到10001000之间的随机整数(N≤100)(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。

输入格式

输入有两行,第11行为11个正整数,表示所生成的随机数的个数NN

第22行有NN个用空格隔开的正整数,为所产生的随机数。

输出格式

输出也是两行,第11行为11个正整数MM,表示不相同的随机数的个数。

第22行为MM个用空格隔开的正整数,为从小到大排好序的不相同的随机数。

取个巧,STL里有个unique函数,该函数对数组进行去重处理,前提是有序,该函数返回最后一个元素的地址,通俗的说函数减去首元素的地址就是去重后元素的个数

你可能感兴趣的:(蓝桥杯,拓扑学,c++)