Pagini recente » Cod sursa (job #2777799) | Cod sursa (job #2396510) | Cod sursa (job #850672) | Cod sursa (job #269333) | Cod sursa (job #345220)
Cod sursa(job #345220)
var a,b,c:array[0..1000000] of int64;
v,col:array[1..1000000] of longint;
n,i:longint;
aux,x,d:int64;
f,g:text;
begin
assign(f,'curcubeu.in');
assign(g,'curcubeu.out');
reset(f);rewrite(g);
readln(f,n,a[1],b[1],c[1]);
if a[1]>b[1] then
begin
aux:=a[1];
a[1]:=b[1];
b[1]:=aux;
end;
v[1]:=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;
if a[i]>b[i] then
begin
aux:=a[i];
a[i]:=b[i];
b[i]:=aux;
end;
v[i]:=i;
end;
v[n]:=n;
for i:=n-1 downto 1 do
begin
aux:=v[a[i]];
d:=aux;
while (aux<>v[aux]) and (aux<n) do
aux:=v[aux];
while d<>aux do
begin
v[d]:=aux;
d:=v[d];
end;
while aux<=b[i] do
begin
col[aux]:=c[i];
x:=v[aux+1];
d:=x;
while (x<>v[x]) and (x<n) do
x:=v[x];
while d<>x do
begin
v[d]:=x;
d:=v[d];
end;
v[aux]:=v[b[i]]+1;
aux:=x;
end;
end;
for i:=1 to n-1 do
writeln(g,col[i]);
close(f);close(g);
end.