Cod sursa(job #38228)

Utilizator CezarMocanCezar Mocan CezarMocan Data 25 martie 2007 16:18:56
Problema Next Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.05 kb
type vector=array[0..1000010]of longint;
var n,re:vector;
    d,r:int64;
    i,aux:longint;
    c:char;

procedure aduna(var v:vector;n:int64);
var i:longint;
begin
i:=1;
while n>0 do
        begin
        v[i]:=v[i]+n mod 10;
        n:=n div 10;
        inc(v[i+1],v[i] div 10);
        v[i]:=v[i] mod 10;
        inc(i);
        end;
while v[i]>=10 do
        begin
        inc(v[i+1],v[i] div 10);
        v[i]:=v[i] mod 10;
        inc(i);
        end;
while v[v[0]+1]>0 do
        inc(v[0]);
end;

begin
assign(input,'next.in');reset(input);
assign(output,'next.out');rewrite(output);
while not eoln do
        begin
        read(c);
        inc(n[0]);
        n[n[0]]:=ord(c)-48;
        end;
readln;
readln(d);
for i:=1 to n[0] div 2 do
        begin
        aux:=n[i];
        n[i]:=n[n[0]-i+1];
        n[n[0]-i+1]:=aux;
        end;
for i:=n[0] downto 1 do
        r:=(r*10+n[i]) mod d;
r:=d-r;
if r=d then
        r:=0;
aduna(n,r);
for i:=n[0] downto 1 do
        write(n[i]);
close(input);close(output);
end.