Cod sursa(job #239012)

Utilizator MihaiBunBunget Mihai MihaiBun Data 3 ianuarie 2009 20:51:08
Problema Next Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.15 kb
program mmm;
var f:text;
    n:ansistring;
    d,s:int64;
    p,i,l:longint;
    c,er,t,q:integer;
    k,v:array[1..1000001] of 0..9;
begin
  assign(f,'next.in');
  reset(f);
  readln(f,n);
  readln(f,d);
  p:=length(n);
  s:=0;
  for i:=1 to p do
  begin
    val(n[i],c,er);
    k[i]:=c;
    s:=s*10+c;
    s:=s mod d
  end;
  s:=d-s;
  l:=0;
  repeat
    l:=l+1;
    v[l]:=s mod 10;
    s:=s div 10
  until s=0;
  if p>l then
               for i:=1 to p-1 do begin
                    if i>l then q:=0
                           else q:=v[i];
                    t:=(k[p-i+1]+q) div 10;
                    k[p-i+1]:=(k[p-i+1]+q) mod 10;
                    k[p-i]:=k[p-i]+t
                   end
          else   for i:=1 to l-1 do begin
                    if i>p then q:=0
                           else q:=k[p-i+1];
                    t:=(v[i]+q) div 10;
                    v[i]:=(v[i]+q) mod 10;
                    v[i+1]:=v[i+1]+t
                   end
  close(f);
  assign(f,'next.out');
  rewrite(f);
  if p>i then for i:=1 to p do  write(f,k[i])
         else for i:=l downto 1 do write(f,v[i]);
  close(f)
end.