Cod sursa(job #305189)

Utilizator FllorynMitu Florin Danut Flloryn Data 16 aprilie 2009 16:18:01
Problema Koba Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.22 kb
program pascal;
var f,g:text;  val,i,n,aux,st,sum,t1,t2,t3,pi,ps,lung:longint; viz:array[0..999] of longint;
               s:array[1..100000] of longint;

  procedure citire;
  begin
  assign(f,'koba.in'); reset(f); assign(g,'koba.out'); rewrite(g);
  read(f,n,t1,t2,t3);
  close(f);
  end;

  procedure suparare;
  begin
  pi:=viz[aux]; ps:=i-3; lung:=ps-pi+1; sum:=s[ps]-s[pi-1];
  val:=n;
  val:=val-(pi-1);
  st:=s[pi-1];
  aux:=val div lung; st:=st+sum*aux;
  aux:=val mod lung;
  sum:=s[pi+aux-1]-s[pi-1];
  st:=st+sum;
  end;

  procedure calcul;
  begin
  t1:=t1 mod 10; t2:=t2 mod 10; t3:=t3 mod 10; aux:=100*t3+10*t2+t1; viz[aux]:=1;
  s[1]:=t1; s[2]:=t2+s[1]; s[3]:=s[2]+t3;
  for i:=4 to n do
     begin
     aux:=t3+t2*t1;
     t1:=t2; t2:=t3; t3:=aux mod 10;
     aux:=100*t3+10*t2+t1;
     if viz[aux]<>0 then
                     begin
                     suparare;
                     break;
                     end  else
                      begin
                      viz[aux]:=i-2;
                      s[i]:=s[i-1]+t3;
                      end;
     end;
  end;

  procedure afisare;
  begin
  write(g,st);
  close(g);
  end;

begin
citire;
calcul;
afisare;
end.