Cod sursa(job #282183)

Utilizator andreirulzzzUPB-Hulea-Ionescu-Roman andreirulzzz Data 17 martie 2009 01:49:35
Problema Koba Scor 80
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.35 kb
program koba;
var t1,t2,s,t3,srez,divid,rezd,t4,rep,n,i:longint;
    v:array[1..100] of integer;
procedure initial;
begin
     assign(input,'koba.in');
     reset(input);
     read(input,n,t1,t2,t3);
     close(input);
     t1:=t1 mod 10;
     t2:=t2 mod 10;
     t3:=t3 mod 10;
     t4:=0;
     s:=t1+t2+t3;
end;
procedure secv;
begin
     t1:=v[100];t2:=v[99];t3:=v[98];
     for i:=99 downto 3 do
         if (v[i]=t1)and(v[i-1]=t2)and(v[i-2]=t3) then
            break;
     rep:=100-i;
     srez:=0;
     for i:=100-rep+1 to 100 do
         srez:=srez+v[i];
end;
procedure cutter;
begin
     for i:=4 to 100 do begin
         t4:=t3+t2*t1; t4:=t4 mod 10;s:=s+t4;
         v[i]:=t4;t1:=t2;t2:=t3;t3:=t4;
         end;
end;
begin
initial;
if n<100 then
   for i:=1 to n-3 do begin
       t4:=t3+t2*t1;
       t4:=t4 mod 10;
       s:=s+t4;
       t1:=t2;
       t2:=t3;
       t3:=t4;
       end
else begin
     v[1]:=t1;v[2]:=t2;v[3]:=t3;
     cutter;                               
     secv;
     n:=n-100;
     divid:=n div rep;                      
     s:=s+divid*srez;      
     n:=n-divid*rep;            
     for i:=1 to n do
         s:=s+v[rep+i];                   
     end;                       
assign(output,'koba.out');
rewrite(output);
write(output,s);
close(output);
end.