Pagini recente » Cod sursa (job #2739656) | Cod sursa (job #3256191) | Cod sursa (job #2459166) | Cod sursa (job #864278) | Cod sursa (job #33774)
Cod sursa(job #33774)
const fin = 'oo.in';
fout = 'oo.out';
maxn = 100002;
var f:text;
n,i,j,sol:longint;
a,p0,p2:array[1..maxn]of longint;
procedure readdata;
begin
assign(f,fin);
reset(f);
readln(f,n);
for i:=1 to n do read(f,a[i]);
close(f);
end;
function max(x,y:longint):longint;
begin
if x>y then max:=x
else max:=y;
end;
procedure solve;
begin
p0[1]:=0;
p2[1]:=0;
for i:=2 to n-1 do
begin
j:=p0[i-1];
if i>3 then j:=max(j,p2[i-3]);
p2[i]:=j+a[i]+a[i-1];
p0[i]:=j;
if p2[i]>sol then sol:=p2[i];
end;
p0[1]:=0;
p2[1]:=0;
p0[2]:=0;
p2[2]:=0;
for i:=2 to n do
begin
j:=p0[i-1];
if i>3 then j:=max(j,p2[i-3]);
p2[i]:=j+a[i];
if i<>2 then p2[i]:=p2[i]+a[i-1];
p0[i]:=j;
if p2[i]>sol then sol:=p2[i];
end;
p0[1]:=0;
p2[1]:=0;
p0[2]:=0;
p2[2]:=0;
p0[3]:=0;
p2[3]:=0;
for i:=4 to n+1 do
begin
j:=p0[i-1];
if i>3 then j:=max(j,p2[i-3]);
p2[i]:=j+a[i-1];
if i<>n+1 then p2[i]:=p2[i]+a[i]
else p2[i]:=p2[i]+a[1];
p0[i]:=j;
if p2[i]>sol then sol:=p2[i];
end;
end;
procedure writedata;
begin
assign(f,fout);
rewrite(f);
writeln(f,sol);
close(f);
end;
begin
readdata;
solve;
writedata;
end.