MMAXPER - Rectangles Perimeter
Tác giả: happyboy99x
Ngôn ngữ: C++
#include<cstdio>
#include<algorithm>
using namespace std;
#define N 1000
int f[N], g[N], a[N], b[N], n;
/* a[i]: chieu dai hinh chu nhat i
b[i]: chieu rong hinh chu nhat i
f[i]: xep hinh chu nhat thu i nam ngang
g[i]: xep hinh chu nhat thu i dung dung
*/
int main() {
scanf("%d", &n);
for(int i = 0; i < n; ++i) {
scanf("%d%d", a+i, b+i);
if(a[i] < b[i]) swap(a[i], b[i]);
}
f[0] = a[0]; g[0] = b[0];
for(int i = 1; i < n; ++i) {
f[i] = a[i] + max(abs(b[i] - b[i-1]) + f[i-1], abs(b[i] - a[i-1]) + g[i-1]);
g[i] = b[i] + max(abs(a[i] - b[i-1]) + f[i-1], abs(a[i] - a[i-1]) + g[i-1]);
}
printf("%d\n", max(f[n-1], g[n-1]));
return 0;
}