Pagini recente » Cod sursa (job #116833) | Cod sursa (job #3166246) | Cod sursa (job #501940) | Cod sursa (job #2790260) | Cod sursa (job #289815)
Cod sursa(job #289815)
program koba;
const maxd=100;
var t1,t2,t3,srez,s,divid,rezd,t4,rep,n,i:longint;
v:array[0..maxd+1] of longint;
procedure initial;
begin
assign(input,'koba.in');
reset(input);
read(input,n,t1,t2,t3);
close(input);
t1:=t1 mod 10;
t2:=t2 mod 10;
t3:=t3 mod 10;
t4:=0;
s:=t1+t2+t3;
end;
procedure secv;
begin
t1:=v[maxd];t2:=v[maxd-1];t3:=v[maxd-2];
for i:=maxd-1 downto 3 do
if (v[i]=t1)and(v[i-1]=t2)and(v[i-2]=t3) then
break;
rep:=maxd-i;
srez:=0;
for i:=maxd-rep+1 to maxd do
srez:=srez+v[i];
end;
procedure cutter;
begin
for i:=4 to maxd do begin
t4:=t3+t2*t1; t4:=t4 mod 10;s:=s+t4;
v[i]:=t4;t1:=t2;t2:=t3;t3:=t4;
end;
end;
begin
initial;
if n<maxd then
for i:=1 to n-3 do begin
t4:=t3+t2*t1;
t4:=t4 mod 10;
s:=s+t4;
t1:=t2;
t2:=t3;
t3:=t4;
end
else begin
v[1]:=t1;v[2]:=t2;v[3]:=t3;
cutter;
secv;
n:=n-maxd;
divid:=n div rep;
s:=s+divid*srez;
n:=n-divid*rep;
for i:=1 to n do
s:=s+v[maxd-rep+i-2];
end;
assign(output,'koba.out');
rewrite(output);
write(output,s);
close(output);
end.