Pagini recente » Cod sursa (job #1610182) | Cod sursa (job #2335862) | Cod sursa (job #1130437) | Cod sursa (job #1131936) | Cod sursa (job #1519620)
type sir=array[0..10000000]of longint;
var f:text;
k,i,n,a,b,c,x,sk,max:longint;
v:array[0..1]of sir;
count,poz:array[0..9]of longint;
sortat:boolean;
begin
assign(f,'radixsort.in');
reset(f);
readln(f,n,a,b,c);
close(f);
x:=b;max:=b;
for i:=0 to n-1 do
begin
if i<>0 then
x:=(x*a+b)mod c;
v[0][i]:=x;
if x>max then max:=x;
end;
k:=1;sk:=1;
repeat
inc(sk);sortat:=true;
sk:=sk mod 2;
for i:=0 to 9 do
count[i]:=0;
for i:=0 to 9 do
poz[i]:=0;
for i:=0 to n-1 do
begin
inc(count[(v[sk][i]div k)mod 10]);
if v[sk][i] div k>0 then sortat:=false
end;
poz[0]:=0;
for i:=1 to 9 do
poz[i]:=poz[i-1]+count[i-1];
for i:=0 to n-1 do
begin
v[(sk+1)mod 2][poz[(v[sk][i]div k)mod 10]]:=v[sk][i];
inc(poz[(v[sk][i] div k)mod 10]);
end;
k:=k*10;
until sortat;
assign(f,'radixsort.out');
rewrite(f);
i:=0;
while i<=n-1 do
begin
write(f,v[(sk+1)mod 2][i],' ');
inc(i,10);
end;
close(f);
end.