Cod sursa(job #138491)

Utilizator Pepelea_FlaviuFlaviu Pepelea Pepelea_Flaviu Data 18 februarie 2008 18:36:42
Problema Koba Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.89 kb
var fi,fo:text;
    a,b,c,n,i,s1,s2,pozi,pozf,ct:longint;
    T:array[1..10000000]of byte;
    s:array[0..999]of longint;
begin
  assign(fi,'koba.in'); reset(fi);
  assign(fo,'koba.out'); rewrite(fo);
  read(fi,n,a,b,c);
  T[1]:=a mod 10; T[2]:=b mod 10; T[3]:=c mod 10;
  s[T[1]*100+T[2]*10+T[3]]:=1;
  for i:=4 to n do
    begin
      T[i]:=(T[i-1]+T[i-2]*T[i-3]) mod 10;
      if s[T[i]*100+T[i-1]*10+T[i-2]]<>0 then
        begin
          pozi:=s[T[i]*100+T[i-1]*10+T[i-2]];
          pozf:=i-2;
          break;
        end
      else
        s[T[i]*100+T[i-1]*10+T[i-2]]:=i-2;
    end;
  s1:=0; s2:=0;
  for i:=1 to pozi-1 do
    s1:=s1+T[i];
  for i:=pozi to pozf-1 do
    s2:=s2+T[i];
  n:=n-pozi;
  ct:=n div (pozf-pozi);
  s2:=s2*ct;
  n:=n mod (pozf-pozi);
  for i:=pozi to pozi+n do
    s2:=s2+T[i];
  writeln(fo,s1+s2);
  close(fi);
  close(fo);




end.