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;
}
上一题
下一题