关于noip2006年复赛的一道题目?????

来源:百度知道 编辑:UC知道 时间:2024/06/26 05:09:17
明明想在学校中请一些同学一起做问卷调查,为了实验的客观性,他先用计算机生成了

N 个1 到1000 之间的随机整数,(N≤100),对于其中重复的数字,只保留一个,把其余相

同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好

的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。

这题。。。看来楼主没学多长时间程序。。
最好的方法——计数排序
程序如下,很短
var n,i,s,t:longint;
a,b:array[0..10000] of longint;
begin
assign(input,'random.in');
assign(output,'random.out');
reset(input);
rewrite(output);
read(n);
for i:=1 to n do begin read(t);a[t]:=1;end;
for i:=1 to 1000 do if a[i]=1 then begin inc(s);b[s]:=i;end;
writeln(s);
for i:=1 to s-1 do write(b[i],' ');write(b[s]);
close(input);
close(output);
end.
另外楼上会多一个空格