Pagini recente » Cod sursa (job #2515312) | Cod sursa (job #677353) | Cod sursa (job #2176735) | Cod sursa (job #105115) | Cod sursa (job #185038)
Cod sursa(job #185038)
type nr=array[0..1000000] of byte;
var a,b,rez,aux,aux4,aux2,aux3:nr;
f,g:text;
i:longint;
procedure inm(a,b:nr; var c:nr);
var j,i,t:longint;
begin
for i:=0 to c[0] do
c[i]:=0;
i:=1;
while (i<=a[0]) do begin
t:=0; j:=1;
while (j<=b[0]) or (t<>0) do begin
t:=t+c[i+j-1]+a[i]*b[j];
c[i+j-1]:=t mod 10;
inc(j);
t:=t div 10;
end;
if (i+j-2)>c[0] then
c[0]:=i+j-2;
inc(i);
end;
end;
procedure adun(a,b:nr; var c:nr);
var i,t:longint;
begin
i:=1; t:=0;
while (i<=a[0]) or (i<=b[0]) or (t<>0) do begin
t:=t+a[i]+b[i];
c[i]:=t mod 10;
inc(i);
t:=t div 10;
end;
c[0]:=i-1;
end;
procedure scad(a,b:nr; var c:nr);
var i,t:longint;
begin
t:=0; i:=a[0];
while (i>0) do begin
a[i]:=a[i]-b[i]+t;
t:=a[i];
if t<0 then
t:=1
else
t:=0;
c[i]:=t*10+a[i];
dec(i);
end;
c[0]:=a[0];
while (c[0]>1) and (c[c[0]]=0) do
dec(c[0]);
end;
begin
assign(f,'sarpe.in'); reset(f);
assign(g,'sarpe.out'); rewrite(g);
a[0]:=0;
while not(eoln(f)) do begin
inc(a[0]);
read(f,a[a[0]]);
end;
b[0]:=1; b[1]:=4;
inm(a,b,rez);
b[1]:=1;
scad(a,b,aux);
scad(aux,b,aux2);
b[1]:=2;
inm(aux2,aux,aux3);
inm(aux3,b,aux3);
adun(rez,aux3,aux4);
if (a[1]=1) and (a[0]=1) then begin
aux4[0]:=1;
aux4[1]:=1;
end;
for i:=aux4[0] downto 1 do
write(g,aux4[i]);
close(f); close(g);
end.