题目链接http://acm.nyist.net/JudgeOnline/problem.php?pid=48
描述-
输入
-
输入有2行,第1行为1个正整数,表示所生成的随机数的个数:
N
第2行有N个用空格隔开的正整数,为所产生的随机数。
输出
- 输出也是2行,第1行为1个正整数M,表示不相同的随机数的个数。第2行为M个用空格隔开的正整数,为从小到大排好序的不相同的随机数。 样例输入
-
10 20 40 32 67 40 20 89 300 400 15
样例输出
-
8 15 20 32 40 67 89 300 400
#include<iostream> #include<string.h> #include<stdio.h> #include<ctype.h> #include<algorithm> #include<stack> #include<queue> #include<set> #include<math.h> #include<vector> #include<deque> #include<list> using namespace std; bool cmp(int a,int b) { return a<b; }; int a[1010],b[1010]; int main() { int n,i,j,k,t,m; scanf("%d",&n); for(i=0;i<n;i++) cin>>a[i]; sort(a,a+n,cmp); memset(b,0,sizeof(b)); for(i=0;i<n;i++) for(j=i+1;j<n;j++) if(a[i]==a[j]) a[j]=0; /*for(i=0;i<n;i++) printf("%d ",a[i]);*/ k=0; for(i=0;i<n;i++) if(a[i]!=0) b[k++]=a[i]; printf("%d\n",k); for(i=0;i<k-1;i++) printf("%d ",b[i]); printf("%d\n",b[k-1]); return 0; }