1. 程式人生 > >P1059 明明的隨機數【去重排序】

P1059 明明的隨機數【去重排序】

none 保留 描述 不同的 splay onclick orange ins pre

題目描述

明明想在學校中請一些同學一起做一項問卷調查,為了實驗的客觀性,他先用計算機生成了N個1到1000之間的隨機整數(N≤100),對於其中重復的數字,只保留一個,把其余相同的數去掉,不同的數對應著不同的學生的學號。然後再把這些數從小到大排序,按照排好的順序去找同學做調查。請你協助明明完成“去重”與“排序”的工作。

輸入輸出格式

輸入格式:

輸入有2行,第1行為1個正整數,表示所生成的隨機數的個數:

N 第2行有N個用空格隔開的正整數,為所產生的隨機數。

輸出格式:

輸出也是2行,第1行為1個正整數M,表示不相同的隨機數的個數。第2行為M個用空格隔開的正整數,為從小到大排好序的不相同的隨機數。

輸入輸出樣例

輸入樣例#1: 復制
  10
  20 40 32 67 40 20 89 300 400 15
輸出樣例#1: 復制
  8
  15 20 32 40 67 89 300 400

說明

NOIP 2006 普及組 第一題

【代碼】:

技術分享
#include<bits/stdc++.h>

using namespace std;

int main()
{
    int n,a[1005];
    set<int> s;    //自帶排序+去重
    scanf("%d",&n);
    for(int
i=0;i<n;i++) { scanf("%d",&a[i]); s.insert(a[i]); } cout<<s.size()<<endl; for(set<int>::iterator it = s.begin();it!=s.end();it++)//註意遍歷使用叠代器 { cout<<*it<<" "; } cout<<endl; return 0; } /* 10 20 40 32 67 40 20 89 300 400 15
*/
View Code

P1059 明明的隨機數【去重排序】