Cod sursa(job #490599)

Utilizator lianaliana tucar liana Data 6 octombrie 2010 21:41:25
Problema Curcubeu Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.08 kb
program curcubeu;
var f, g:text;
    a, b, c, col, sar:array[0..1000000] of longint;
    inc, sf, j, i, n, jj:longint;

procedure intervale;
  begin
    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;
      end;
  end;

function max(q,w:longint):longint;
  begin
    if q>w then
      max:=q
     else
       max:=w;
  end;

procedure colorare;
  begin
    sf:=max(a[i],b[i]);
    inc:=a[i]+b[i]-max(a[i],b[i]);
    j:=inc;
    while j<=sf do
      begin
        while col[j]>0 do
          j:=sar[j]+1;
        jj:=inc;
        while col[jj]>0 do
          begin
            jj:=sar[jj]+1;
            sar[jj]:=j-1;
          end;
        col[j]:=c[i];
        sar[j]:=j;
        j:=j+1;
      end;
  end;

  begin
    assign(f,'curcubeu.in'); reset(f);
    assign(g,'curcubeu.out'); rewrite(g);
    readln(f,n,a[1],b[1],c[1]);
    intervale;
    for i:=n-1 downto 1 do
      colorare;
    for i:=1 to n-1 do
      writeln(g,col[i]);
    close(f);
    close(g);
  end.