MMAXPER - Rectangles Perimeter
Tác giả: ll931110
Ngôn ngữ: Pascal
Program MMAXPER;
Const
input = '';
output = '';
Var
a,b: array[1..1000] of longint;
F: array[1..1000,0..1] of longint;
n: longint;
Procedure init;
Var
fi: text;
i: longint;
Begin
Assign(fi, input);
Reset(fi);
Readln(fi, n);
For i:= 1 to n do readln(fi, a[i], b[i]);
Close(fi);
End;
Function max(x,y: longint): longint;
Begin
If x < y then max:= y else max:= x;
End;
Procedure optimize;
Var
i: longint;
Begin
F[1,0]:= a[1]; F[1,1]:= b[1];
For i:= 2 to n do
Begin
F[i,0]:= max(F[i - 1,0] + abs(b[i] - b[i - 1]), F[i - 1,1] + abs(b[i] - a[i - 1]));
F[i,0]:= F[i,0] + a[i];
F[i,1]:= max(F[i - 1,0] + abs(a[i] - b[i - 1]), F[i - 1,1] + abs(a[i] - a[i - 1]));
F[i,1]:= F[i,1] + b[i];
End;
End;
Procedure solve;
Var
fo: text;
Begin
Assign(fo, output);
Rewrite(fo);
Writeln(fo, max(F[n,0], F[n,1]));
Close(fo);
End;
Begin
init;
optimize;
solve;
End.