Pagini recente » Cod sursa (job #273087) | Cod sursa (job #2735530) | Cod sursa (job #2047576) | Cod sursa (job #2935744) | Cod sursa (job #37525)
Cod sursa(job #37525)
var f,g:text;
a,b,c:array[0..1000000]of integer;
i:longint;
d,t:qword;
e:integer;
ch:char;
procedure impartire;
begin
t:=0;i:=a[0];
while i>0 do
begin
t:=t*10+a[i];
b[i]:=t div d;
t:=t mod d;
i:=i-1;
end;
b[0]:=a[0];
while (b[0]>0)and(b[b[0]]=0)do dec(b[0]);
end;
procedure inmultire;
begin
t:=0;i:=1;
while (i<=b[0])or(t>0)do
begin
t:=t+b[i]*d;
b[i]:=t mod 10;
t:=t div 10;
inc(i);
end;
b[0]:=i-1;
end;
procedure scadere;
begin
t:=0;i:=1;
while (i<=a[0])or(t>0)do
begin
b[i]:=a[i]-b[i]-t;
if b[i]<0 then t:=1
else t:=0;
b[i]:=b[i]+t*10;
inc(i);
end;
while (b[0]>0)and(b[b[0]]=0)do dec(b[0]);
end;
procedure scadere1;
begin
t:=0;i:=1;
while (i<=c[0])or(t>0)do
begin
b[i]:=c[i]-b[i]-t;
if b[i]<0 then t:=1
else t:=0;
b[i]:=b[i]+t*10;
inc(i);
end;
while (b[0]>0)and(b[b[0]]=0)do dec(b[0]);
end;
procedure adunare;
begin
t:=0;i:=1;
while(i<=a[0])or(i<=b[0])or(t>0)do
begin
t:=t+a[i]+b[i];
a[i]:=t mod 10;
t:=t div 10;
inc(i);
end;
a[0]:=i-1;
end;
begin
assign(f,'next.in');reset(f);
assign(g,'next.out');rewrite(g);
while not eoln(f) do
begin
inc(a[0]);
read(f,ch);
val(ch,a[a[0]],e);
end;
for i:=1 to a[0] div 2 do
begin
e:=a[i];
a[i]:=a[a[0]-i+1];
a[a[0]-i+1]:=e;
end;
readln(f);
readln(f,d);
impartire;
inmultire;
scadere;
while d<>0 do
begin
inc(c[0]);
c[c[0]]:=d mod 10;
d:=d div 10;
end;
scadere1;
if b[0]>0 then adunare;
for i:=a[0] downto 1 do
write(g,a[i]);
writeln(g);
close(f);
close(g);
end.