Pagini recente » Cod sursa (job #1343667) | Cod sursa (job #1610622) | Cod sursa (job #1244118) | Cod sursa (job #2257433) | Cod sursa (job #1228904)
program interclaseri;
type
tabel=array[0..10000002] of int64;
tab=array[0..1 shl 17] of char;
var
ff1,ff2:tab;
t,c:tabel;
n,m,i,j,k,x,y:longint;
f1,f2:text;
procedure interclaseaza(s,m,d:longint); forward;
procedure mergesort(s,d:longint);
var
m:longint;
begin
if s<d then begin
m:=(s+d) div 2;
mergesort(s,m);
mergesort(m+1,d);
interclaseaza(s,m,d);
end;
end;
procedure interclaseaza(s,m,d:longint);
var
i,j,k:longint;
begin
i:=s; j:=m+1; k:=0;
while (i<=m) and (j<=d) do
if t[i]<t[j] then begin inc(k); c[k]:=t[i]; inc(i); end else
begin inc(k); c[k]:=t[j]; inc(j); end;
while (i<=m) do begin inc(k); c[k]:=t[i]; inc(i); end;
while (j<=d) do begin inc(k); c[k]:=t[j]; inc(j); end;
k:=0;
for i:=s to d do begin
k:=k+1;
t[i]:=c[k];
end;
end;
begin
assign (f1,'radixsort.in');
assign (f2,'radixsort.out');
reset (f1);
rewrite (f2);
settextbuf(f1,ff1);
settextbuf(f2,ff2);
readln (f1,n,x,y,k);
t[1]:=y;
for i:=2 to n do t[i]:=(1*x*t[i-1]+y) mod k;
mergesort(1,n);
i:=1;
while i<n do begin
write (f2,t[i],' ');
i:=i+10;
end;
close (f1);
close (f2);
end.