Pagini recente » Cod sursa (job #1893170) | Cod sursa (job #170534) | Cod sursa (job #1078919) | Cod sursa (job #2999412) | Cod sursa (job #137754)
Cod sursa(job #137754)
var a,ap:array[0..1000] of longint;
f,g:text;
n,i,x,s,suma,nr:longint;
begin
assign(f,'koba.in'); reset(f);
assign(g,'koba.out'); rewrite(g);
read(f,n,a[1],a[2],a[3]);
a[1]:=a[1] mod 10;
a[2]:=a[2] mod 10;
a[3]:=a[3] mod 10;
ap[a[1]*100+a[2]*10+a[3]]:=1;
i:=4;
a[4]:=(a[i-1]+a[i-2]*a[i-3]) mod 10;
while (ap[a[i-2]*100+a[i-1]*10+a[i]]=0) and (i<=n) do begin
ap[a[i-2]*100+a[i-1]*10+a[i]]:=i-2;
inc(i);
a[i]:=(a[i-1]+a[i-2]*a[i-3]) mod 10;
end;
x:=a[i-2]*100+a[i-1]*10+a[i];
suma:=0;
nr:=i-3;
if ap[x]<>0 then begin
for i:=1 to ap[x]-1 do
suma:=suma+a[i];
n:=(n-ap[x]+1);
for i:=ap[x] to nr do
s:=s+a[i];
suma:=suma+(n div (nr-ap[x]+1))*s;
n:=n mod (nr-ap[x]+1);
for i:=1 to n do
suma:=suma+a[i+ap[x]-1];
end
else begin
for i:=1 to n do
inc(suma,a[i]);
end;
writeln(g,suma);
close(f); close(g);
end.