♐ CSP_J 组真题
2006年
1. 明明的随机数

线上OJ:

一本通:1934:【06NOIP普及组】明明的随机数 (opens in a new tab)
AcWing:425. 明明的随机数 (opens in a new tab)
洛谷:P1059 [NOIP2006 普及组] 明明的随机数 (opens in a new tab)

核心思想:

本题的要求是
1、去重
2、排序
以上两个要求正好可以使用 set 来实现。set 自带了去重和排序的功能。输出时使用 iterator 即可。

利用 set
#include <bits/stdc++.h>
using namespace std;
 
int n, x;
set<int> s;
 
int main()
{
    scanf("%d", &n);
    while(n--)
    {
        scanf("%d", &x);
        s.insert(x);  // 插入后自动排序,自动去重
    }
 
    set<int>::iterator it; // 定义指向set的迭代器
    printf("%d\n", s.size());
    for(it = s.begin(); it != s.end(); it++)  printf("%d ", *it);  // 输出set中每一个数
 
    return 0;
}