Cod sursa(job #137754)

Utilizator radu_voroneanuVoroneanu Radu Stefan radu_voroneanu Data 17 februarie 2008 14:18:36
Problema Koba Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.88 kb
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.