Cod sursa(job #690824)

Utilizator andrei_toaderToader Andrei Sorin andrei_toader Data 25 februarie 2012 22:21:39
Problema Ratphu Scor 30
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.88 kb
program ratphu;
var f,g:text;
    n,c:qword;
    p:integer;
    x,v:array[1..20] of byte;
    nr:array[0..20] of qword;

function cont (k:integer):boolean;
var i:integer;
begin
 cont:=true;
 for i:=1 to k-1 do
  if x[i]=x[k] then
  begin
   cont:=false; break;
  end;
  if cont then
   nr[k]:=nr[k-1]*10+v[x[k]];
end;

procedure bkt;
var k:integer;
begin
 k:=1; x[k]:=0;
 while k>0 do
  if x[k]<n then
  begin
   x[k]:=x[k]+1;
   if cont (k) then
    if k=n then
    begin
     if nr[k] mod p=0 then
      c:=c+1;
    end
    else
    begin
     k:=k+1; x[k]:=0;
    end;
  end
  else
   k:=k-1;
end;

begin
 assign (f,'ratphu.in'); reset (f);
 assign (g,'ratphu.out'); rewrite (g);
 readln(f,n,p);
 c:=n; n:=0;
 while c<>0 do
 begin
  n:=n+1; v[n]:=c mod 10;
  c:=c div 10;
 end;
 c:=0;
 bkt;
 write (g,c);
 close (f);
 close (g);
end.