Cod sursa(job #187336)

Utilizator vladianavladiana micu vladiana Data 3 mai 2008 13:31:39
Problema Sandokan Scor 10
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.79 kb
var fi,fo:text;
    m,n,k,rez,max,min,aux,i:int64;

function cmmdc(a,b:int64):int64;
begin
  while a<>b do
    if a>b then a:=a-b
           else b:=b-a;
  cmmdc:=a;
end;

begin
  assign(fi,'sandokan.in'); reset(fi);
  assign(fo,'sandokan.out'); rewrite(fo);
  read(fi,n,k);
  m:=n;
  while m-k>=0 do
    begin
      m:=m-k;
      m:=m+1;
    end;
  dec(m); dec(n);
  m:=k-1;
  k:=n-m;
  if k>m then
    begin
      max:=k;
      min:=m;
    end
  else
    begin
      max:=m;
      min:=k;
    end;
  rez:=1;
  i:=max+1;
  while i<=n do
    begin
      if min>1 then aux:=cmmdc(i,min)
               else aux:=1;
      rez:=rez*((i div aux) mod 2000003) mod 2000003;
      min:=min div aux;
      inc(i);
    end;
  writeln(fo,rez);
  close(fi);
  close(fo);
end.