Cod sursa(job #85943)

Utilizator RobybrasovRobert Hangu Robybrasov Data 23 septembrie 2007 12:09:23
Problema Curcubeu Scor 20
Compilator fpc Status done
Runda Autumn Warmup 2007, Runda 2 Marime 0.8 kb
type vector=array[1..1000000] of longint;
var v:vector;
    n,a,b,c:longint;
    f:text;

procedure interschimba(var a,b:longint);
var t:longint;
begin
  t:=a; a:=b; b:=t;
end;

procedure rezolva;
var i,j,an,bn,cn:longint;
begin
  if a<b then for i:=a to b do v[i]:=c
  else for i:=b to a do v[i]:=c;
  for i:=2 to n-1 do
    begin
      an:=(a*i) mod n; interschimba(a,an);
      bn:=(b*i) mod n; interschimba(b,bn);
      cn:=(c*i) mod n; interschimba(c,cn);
      if a<b then for j:=a to b do v[j]:=c
      else for j:=b to a do v[j]:=c;
    end;
  for i:=1 to n-1 do
    begin
      write(f,v[i]);
      writeln(f);
    end;
end;

begin
  assign(f,'curcubeu.in');
  reset(f);
  read(f,n,a,b,c);
  close(f);
  assign(f,'curcubeu.out');
  rewrite(f);
  rezolva;
  close(f);
end.