Cod sursa(job #139983)

Utilizator antoanelaAntoanela Siminiuc antoanela Data 20 februarie 2008 23:00:30
Problema Koba Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.15 kb
program koba;
var f,g:text;
    k,n,t1,t2,t3,aux,min,max,p,l,i,t,c,j,ss,s2:longint;
    s,u:array[1..100000000]of longint;
    v:array[0..1000]of longint;
begin
assign(f,'koba.in');
assign(g,'koba.out');
reset(f);
rewrite(g);
read(f,n,t1,t2,t3);
t1:=t1 mod 10;
t2:=t2 mod 10;
t3:=t3 mod 10;
s[1]:=t1;
s[2]:=t1+t2;
s[3]:=t1+T2+T3;
u[1]:=t1;
u[2]:=t2;
u[3]:=t3;
v[1]:=t1;
v[2]:=t2;
v[3]:=t3;
min:=maxlongint;
for i:=4 to n do
  begin
    t:=t3+(t2*t1);
    t:=t mod 10;
    s[i]:=s[i-1]+t;
    u[i]:=t;
    aux:=t3;
    t3:=t;
    t1:=t2;
    t2:=aux;
    if (t3*100+(t2*10)+t1<min)then min:=t3*100+(t2*10)+t1;
    if (t3*100+(t2*10)+t1>max)then max:=t3*100+(t2*10)+t1;
    if (v[t3*100+(t2*10)+t1]>0)then
      break;
    v[(t3*100)+(t2*10)+t1]:=i;
  end;
s2:=0;
ss:=0;
for j:=1 to v[t3*100+(t2*10)+t1]-1 do
  s2:=s2+u[j];
for j:=v[t3*100+(t2*10)+t1] to i-1 do
  ss:=ss+u[j];
i:=i-1;
p:=i-v[t3*100+(t2*10)+t1]+1;
k:=v[t3*100+(t2*10)+t1]-1;
if (i<n)then
  begin
    c:=(n-k) div p;
    ss:=ss*c;
    c:=(n-k) mod p;
    for j:=k+1 to k+c do
      ss:=ss+u[j];
  end;
ss:=ss+s2;
write(g,ss);
close(f);
close(g);
end.