MMAXPER - Rectangles Perimeter
Tác giả: flashmt
Ngôn ngữ: Pascal
var a:array[0..1,0..1] of longint;
n,i,t,x,y,lx,ly:integer;
function max(a,b:longint):longint;
begin
if a>=b then max:=a else max:=b;
end;
function c(a,b:longint):longint;
begin
if a<=b then c:=-a
else c:=a-2*b;
end;
begin
fillchar(a,sizeof(a),0);
readln(n);
readln(x,y);
a[1,0]:=x+y;
a[1,1]:=x+y;
lx:=x; ly:=y;
for i:=2 to n do
begin
t:=i mod 2;
readln(x,y);
a[t,0]:=max(a[1-t,0]+c(x,lx),a[1-t,1]+c(x,ly))+x+y;
a[t,1]:=max(a[1-t,0]+c(y,lx),a[1-t,1]+c(y,ly))+x+y;
lx:=x; ly:=y;
end;
a[t,0]:=a[t,0]-x;
a[t,1]:=a[t,1]-y;
write(max(a[t,0],a[t,1]));
end.