Cod sursa(job #134057)

Utilizator alex_dincaDinca Alexandru-Nicolae - UPB alex_dinca Data 10 februarie 2008 15:51:23
Problema Oo Scor 50
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.81 kb
var n,i,k:integer;   
    rez:longint;   
    oo:array[0..100001] of integer;   
    a:array[0..100001]of longint;   
    f:text;   
function max(a,b:longint):longint;   
begin  
if a>b then max:=a   
else max:=b;   
end;   
  
begin  
assign(f,'oo.in');reset(f);   
readln(f,n);   
for i:=0 to n-1 do read(f,oo[i]);   
close(f);   
if n=2 then rez:=oo[0]+oo[1]   
else for k:=0 to 1 do begin  
      a[k]:=0;   
      a[(k+1) mod n]:=0;   
      a[(k+2) mod n]:=oo[(k+1) mod n]+oo[(k+2) mod n];   
      i:=(k+3) mod n;   
      while i<>k do begin  
         a[i]:=max(a[(i-1+n)mod n],a[(i-3+n) mod n]+oo[(i-1+n) mod n]+oo[i]);   
         i:=(i+1) mod n;   
         end;   
    rez:=max(rez,a[(k-1+n) mod n]);   
    end;   
assign(f,'oo.out');rewrite(f);   
writeln(f,rez);   
close(f);   
end.