Pagini recente » Monitorul de evaluare | Clasament infoarena | Monitorul de evaluare | Profil BlackREz | Cod sursa (job #1346987)
var n,i,j,a,b,c:longint;
v,m:array[1..10000000] of longint;
procedure sw(var a,b:longint);
var c:longint;
begin
c:=a;
a:=b;
b:=c;
end;
procedure sort(st,dr:longint);
var i,j,p:longint;
begin
i:=st;
j:=dr;
p:=v[(i+j) div 2];
while i<j do begin
while v[i]<p do inc(i);
while v[j]>p do dec(j);
if i<=j then begin
sw(v[i],v[j]);
inc(i);
dec(j);
end;
end;
if i<dr then sort(i,dr);
if st<j then sort(st,j);
end;
begin
assign(input,'radixsort.in');
assign(output,'radixsort.out');
reset(input);
rewrite(output);
read(n,a,b,c);
v[1]:=b;
for i:=2 to n do
v[i]:=(a*v[i-1] + b) mod c;
sort(1,n);
j:=0;
i:=1;
while i<=n do begin
inc(j);
m[j]:=v[i];
inc(i,10);
end;
for i:=1 to j do
write(m[i],' ');
end.