Cod sursa(job #39152)

Utilizator raduzerRadu Zernoveanu raduzer Data 26 martie 2007 14:42:03
Problema Next Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.15 kb
var a:array[1..1000000]of integer;
    b:array[1..20]of integer;
    d,r:int64;
    i,j,z,x:longint;
    c:ansistring;

procedure add;
var i:longint;
    t:int64;
    min:integer;
begin
     t:=0;
     i:=0;
     min:=x;
     if z<min then min:=z;
     while (i<min)or(t>0) do
     begin
          i:=i+1;
          if i>z then z:=z+1;
          if i>x then a[i]:=a[i]+t
                 else a[i]:=a[i]+b[i]+t;
          t:=a[i] div 10;
          a[i]:=a[i] mod 10;
     end;
end;

procedure rest;
var i:longint;
begin
     r:=0;
     for i:=z downto 1 do
     begin
          r:=(r*10+a[i]) mod d;
     end;
end;

begin
     assign(input,'next.in');
     reset(input);
     assign(output,'next.out');
     rewrite(output);
     readln(c);
     readln(d);
     z:=length(c);
     for i:=1 to length(c) do
     begin
          a[z+1-i]:=ord(c[i])-ord('0');
     end;
     rest;
     r:=(d-r) mod d;
     x:=0;
     while r>0 do
     begin
          x:=x+1;
          b[x]:=r mod 10;
          r:=r div 10;
     end;
     add;
     for i:=z downto 1 do
     begin
          write(a[i]);
     end;
close(output);
end.