Pagini recente » Cod sursa (job #2700506) | Cod sursa (job #468460) | Cod sursa (job #68410) | Cod sursa (job #68407) | Cod sursa (job #46001)
Cod sursa(job #46001)
const o=ord('0');
var n:array[0..1000000]of shortint;
d,r,c:array[1..17]of shortint;
f,g:text;
ld,ln,lc,lr,mm,i,j:longint;
x:char;
function maimic:byte;
var i:integer;
begin
if lr>ld then maimic:=1
else if lr<ld then maimic:=3
else begin
i:=1;
while (r[i]=d[i])and(i<16) do i:=i+1;
if d[i]=r[i] then maimic:=2
else if r[i]>d[i] then maimic:=1
else maimic:=3;
end;
end;
procedure tip1;
var i:longint;
begin
for i:=1 to ld do write(g,d[ld]);
close(g);
end;
procedure scad;
var i:longint;
begin
if ld=lr then for i:=1 to ld do r[i]:=r[i]-d[i]
else for i:=2 to lr do r[i]:=r[i]-d[i-1];
for i:=lr downto 1 do
if r[i]<0 then begin
r[i]:=r[i]+10;
r[i-1]:=r[i-1]-1;
end;
i:=1;
while r[i]=0 do i:=i+1;
i:=i-1;
if i>0 then for j:=1 to lr-i do r[j]:=r[j+i];
lr:=lr-i;
mm:=maimic;
end;
procedure tip2;
var i:longint;
begin
for i:=1 to ln do write(g,n[i]);
close(g);
end;
procedure tip3;
begin
lc:=ld;
ld:=lr;
lr:=lc;
c:=d;
d:=r;
r:=c;
scad;
for i:=ln-lr+1 to ln do n[i]:=n[i]+r[i-ln+lr];
for i:=ln downto 1 do
if n[i]>9 then begin
n[i]:=n[i]-10;
n[i-1]:=n[i-1]+1;
end;
if n[0]>0 then i:=0
else i:=1;
for i:=i to ln do write(g,n[i]);
close(g);
end;
begin
assign(f,'next.in');
reset(f);
while not(eoln(f)) do begin
ln:=ln+1;
read(f,x);
n[ln]:=ord(x)-o;
end;
readln(f);
while not(eoln(f)) do begin
ld:=ld+1;
read(f,x);
d[ld]:=ord(x)-o;
end;
lr:=ln;
if ln<=16 then for lr:=1 to lr do r[lr]:=n[lr];
assign(g,'next.out');
rewrite(g);
mm:=maimic;
if mm>1 then tip1
else begin
lr:=ld-1;
for i:=1 to lr do r[i]:=n[i];
for i:=ld to ln do begin
lr:=lr+1;
r[lr]:=n[i];
mm:=maimic;
while mm<2 do scad;
if mm=2 then lr:=0;
end;
if lr=0 then tip2
else tip3;
end;
end.