Cod sursa(job #36567)

Utilizator alex_dincaDinca Alexandru-Nicolae - UPB alex_dinca Data 23 martie 2007 18:39:40
Problema Oo Scor 50
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.69 kb
var n,i,k:integer;
    rez:longint;
    oo:array[0..9999] of longint;
    a:array[0..9999]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.