Pagini recente » Cod sursa (job #739728) | Cod sursa (job #443025) | Cod sursa (job #2108345) | Cod sursa (job #2277569) | Cod sursa (job #86069)
Cod sursa(job #86069)
var a,b,c:array[1..1000010]of int64;
v:array[1..1000001]of boolean;
x,z:array[1..1000001]of longint;
i,j,a1,b1,c1,n,jo,s:longint;
function min(a,b:longint):longint;
begin
min:=a;
if b<min then
min:=b;
end;
function max(a,b:longint):longint;
begin
max:=a;
if b>max then
max:=b;
end;
begin
assign(input,'curcubeu.in');reset(input);
assign(output,'curcubeu.out');rewrite(output);
readln(n,a[1],b[1],c[1]);
//writeln('1 ',a[1],' ',b[1],' ',c[1]);
for i:=2 to n-1 do
begin
a[i]:=(a[i-1]*i)mod n;
b[i]:=(b[i-1]*i)mod n;
c[i]:=(c[i-1]*i)mod n;
// writeln(i,' ',a[i],' ',b[i],' ',c[i]);
end;
for i:=n-1 downto 1 do
begin
if not v[c[i]] then
begin
v[c[i]]:=true;
jo:=min(a[i],b[i]);
s:=max(a[i],b[i]);
j:=jo;
while (j<=s) do
begin
if x[j]=0 then
x[j]:=c[i];
if z[j]<>0 then
j:=z[j];
inc(j);
end;
z[jo]:=s;
end;
end;
for i:=1 to n-1 do
writeln(x[i]);
close(input);close(output);
end.