1581:小哼買書
阿新 • • 發佈:2019-02-12
1581:小哼買書
Description
小哼的學校要建立一個圖書角,老師派小哼去找一些同學做調查,看看同學們都喜歡讀哪些書。小哼讓每個同學寫出一個自己最想讀的書的ISBN號(你知道嗎?每本書都有唯一的ISBN號,不信話你去找本書翻到背面看看)。當然有一些好書會有很多同學都喜歡,這樣就會收集到很多重複的ISBN號。小哼需要去掉其中重複的ISBN號,即每個ISBN號只保留一個,也就說同樣的書只買一本(學校真是夠摳門的)。然後再把這些ISBN號從小到大排序,小哼將按照排序好的ISBN號去書店去買書。請你協助小哼完成“去重”與“排序”的工作。
INput
輸入有2行,第1行為一個正整數,表示有n個同學參與調查(n<=100)。第2行有n個用空格隔開的正整數,為每本圖書的ISBN號(假設圖書的ISBN號在1~1000之間)。
Output
輸出也是2行,第1行為一個正整數k,表示需要買多少本書。第2行為k個用空格隔開的正整數,為從小到大已排好序的需要購買的圖書ISBN號,輸出結果末尾沒有空格。
Sample Input
10
20 40 32 67 40 20 89 300 400 15
Sample Output
8
15 20 32 40 67 89 300 400
HINT
改編自全國青少年資訊學奧林匹克聯賽(NOIP2006)普及組第一題《明明的隨機數》。
#include<iostream> #include<algorithm> using namespace std; int main() { int n,m=0,a[500]; cin>>n; for(int i=0;i<n;i++) cin>>a[i]; for(int i=0;i<n-1;i++) { for(int j=i+1;j<n;j++) { if(a[i]==a[j]) a[j]=-1; } } sort(a,a+n); for(int i=0;i<n;i++) { if(a[i]!=-1) m++; } cout<<m<<endl; int temp; for(int i=0;i<n;i++) { if(a[i]!=-1) { temp=i; cout<<a[i]; break; } } for(int j=temp+1;j<n;j++) cout<<" "<<a[j]; }