Cod sursa(job #1197530)

Utilizator cojocarugabiReality cojocarugabi Data 12 iunie 2014 13:08:44
Problema Pascal Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.39 kb
var n,k:                    longint;
    a,b:                    longint;
    i,j:                    longint;
  x,y,z:                      int64;
      t:                       text;
       function corespunde(x,y,z:longint):boolean;
        begin
         if (x-(z+y))>=0 then corespunde:=true else
                             corespunde:=false;
        end;
      begin
       assign(t,'pascal.in');
       reset(t);
       readln(t,n,k);
       x:=0;y:=0;
       for i:=2 to n do begin
          a:=i;
          while (a mod k=0) do begin
            inc(x);a:=a div k;
          end;
       end;
       close(t);
       a:=0;
       y:=x;z:=0;
       for i:=1 to (n div 2) do begin
         b:=n-i+1;
         while (b mod k=0)and(b>0) do begin
           dec(y);b:=b div k;
         end;
         b:=i;
         while (b mod k=0)and(b>0) do begin
           inc(z);b:=b div k;
         end;
         if corespunde(x,y,z) then inc(a);
       end;
       a:=a*2;
       if (n+1) mod 2=1 then begin
         b:=n-(n div 2);
         while (b mod k=0) do begin
           dec(y);b:=b div k;
         end;
         b:=(n div 2)-1;
         while (b mod k=0) do begin
           inc(z);b:=b div k;
         end;
         if corespunde(x,y,z) then inc(a);
       end;
       assign(t,'pascal.out');
       rewrite(t);
       writeln(t,a);
       close(t);
      end.