Cod sursa(job #187330)

Utilizator vladianavladiana micu vladiana Data 3 mai 2008 13:24:25
Problema Sandokan Scor 30
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.76 kb
var fi,fo:text;
    m,n,k,rez,rez2,max,min,aux:int64;
    i:longint;

function cmmdc(a,b:longint):longint;
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);
  k:=n-m;
  if k>m then
    begin
      max:=k;
      min:=m;
    end
  else
    begin
      max:=m;
      min:=k;
    end;
  rez:=1;
  for i:=max+1 to n do
    begin
      aux:=1;
      if min<>1 then aux:=cmmdc(i,min);
      rez:=rez*(i div aux) mod 2000003;
      min:=min div i;
    end;
  writeln(fo,rez);
  close(fi);
  close(fo);
end.