Pagini recente » Cod sursa (job #471056) | Cod sursa (job #1665532) | Cod sursa (job #140548) | Cod sursa (job #2306912) | Cod sursa (job #133643)
Cod sursa(job #133643)
program next;
var f,g:text;
x,p:string;
v,b:array[1..1000000]of char;
d,a,r:int64;
k,l,n,c,i,t:longint;
aux:char;
cod:integer;
m:array[1..1000000] of longint;
begin
assign(f,'next.in');
assign(g,'next.out');
reset(f);
rewrite(g);
while not seekeoln(f) do
begin
n:=n+1;
read(F,v[n]);
end;
read(f,d);
if (d=1)then
for i:=1 to n do write(g,v[i])
else
begin
str(d,x);
l:=length(x);
c:=l;
p:='';
for i:=1 to l do p:=p+v[i];
if (v[1]<x[1])then
begin
p:=p+v[l+1];
c:=c+1;
end;
val(p,a,cod);
r:=a mod d;
for i:=c+1 to n do
begin
a:=r*10+(ord(v[i])-ord('0'));
r:=a mod d;
end;
r:=d-r;
l:=0;
while (r<>0)do
begin
k:=r mod 10;
r:=r div 10;
l:=l+1;
b[l]:=chr(ord('0')+k);
end;
for i:=1 to l div 2 do
begin
aux:=b[i];
b[i]:=b[l-i+1];
b[l-i+1]:=aux;
end;
for i:=n-l+1 to length(v) do
b[i]:=b[i-(n-l)];
for i:=1 to n-l do
b[i]:='0';
t:=0;
for i:=n downto 1 do
begin
m[i]:=t+ord(v[i])-ord('0')+ord(b[i])-ord('0');
t:=m[i] div 10;
if (m[i]>=10)then
m[i]:=m[i] mod 10;
end;
if (t>0)then write(g,t);
for i:=1 to n do
write(g,m[i]);
end;
close(f);
close(G);
end.