测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A40973. 筛排处理

填空题 较易

题目描述

筛排处理

题目描述

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

输入格式

每组输入数据的第一行含有一个正整数N,表示后面行中有N个随机整数。若N=0,表示处理结束。

输出格式

对应每组输入数据,输出一组数据,该数据由单独一行开头,内含一个N,表示后面有N个排好序的整数,整数之间空一格。每组输出数据之间空一行。

样例输入

12

2 4 6 17 20 40 43 45 60 64 85 98

17

35 75 40 61 56 21 85 61 50 83 52 22 44 68 51 80 38

0

样例输出

12

2 4 6 17 20 40 43 45 60 64 85 98


16

21 22 35 38 40 44 50 51 52 56 61 68 75 80 83 85

参考答案

#include <bits/stdc++.h> using namespace std; int main(){ int n; while(cin>>n&&n!=0){ int t,a[1005]={0}; for(int i=0;i<n;i++){ cin>>t; a[t]=1; } int count=0; for(int i=1;i<=1000;i++) if(a[i]==1) count++; cout<<count<<endl; for(int i=1;i<=1000;i++) if(a[i]==1) cout<<i<<' '; cout<<endl<<endl; } return 0; }
上一题 下一题