当前位置: 代码迷 >> 综合 >> P1059 明明的随机数
  详细解决方案

P1059 明明的随机数

热度:66   发布时间:2023-10-09 11:13:04.0

题目描述

生成了N个1到1000之间的随机整数,重复的数只留下一个。然后再把这些数从小到大排序。

样例输入

10
20 40 32 67 40 20 89 300 400 15

样例输出

8
15 20 32 40 67 89 300 400

思路

O(2n^2)
把相同的数变为0,冒泡排序。
vari,j,k,l,f:longint;a:array[1..100] of longint;
beginreadln(l);for i:=1 to l do read(a[i]);for i:=1 to l-1 dofor j:=i+1 to l doif (a[i]<>0)and(a[i]=a[j]) thenbegin a[j]:=0;inc(f);end;for i:=1 to l-1 dofor j:=i+1 to l doif a[i]>a[j] then begin k:=a[j];a[j]:=a[i];a[i]:=k;end;writeln(l-f);for i:=f+1 to l dowrite(a[i],' ');
end.