#include <iostream>
#include <vector>
#include <cmath>
#include <algorithm>
using namespace std;
struct Point {
int x, y;
};
int main() {
// Data contoh titik
vector<Point> points = {{0, 0}, {2, 3}, {5, 1}, {8, 6}};
int n = points.size();
// Array untuk menyimpan jarak horizontal terjauh dari titik awal ke setiap titik
vector<int> dp(n);
dp[0] = 0; // Jarak ke titik pertama adalah 0
// Iterasi melalui setiap titik
for (int i = 1; i < n; ++i) {
dp[i] = 0; // Inisialisasi jarak terjauh ke titik i
// Iterasi melalui semua titik sebelumnya
for (int j = 0; j < i; ++j) {
// Hitung jarak horizontal antara titik j dan i
int horizontal_dist = abs(points[i].x - points[j].x);
// Perbarui nilai dp[i]
dp[i] = max(dp[i], dp[j] + horizontal_dist);
}
}
// Hasil akhir ada di dp[n-1]
cout << "Jarak horizontal terjauh ke titik terakhir: " << dp[n-1] << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8Y21hdGg+CiNpbmNsdWRlIDxhbGdvcml0aG0+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IFBvaW50IHsKICAgIGludCB4LCB5Owp9OwoKaW50IG1haW4oKSB7CiAgICAvLyBEYXRhIGNvbnRvaCB0aXRpawogICAgdmVjdG9yPFBvaW50PiBwb2ludHMgPSB7ezAsIDB9LCB7MiwgM30sIHs1LCAxfSwgezgsIDZ9fTsKICAgIGludCBuID0gcG9pbnRzLnNpemUoKTsKCiAgICAvLyBBcnJheSB1bnR1ayBtZW55aW1wYW4gamFyYWsgaG9yaXpvbnRhbCB0ZXJqYXVoIGRhcmkgdGl0aWsgYXdhbCBrZSBzZXRpYXAgdGl0aWsKICAgIHZlY3RvcjxpbnQ+IGRwKG4pOwogICAgZHBbMF0gPSAwOyAvLyBKYXJhayBrZSB0aXRpayBwZXJ0YW1hIGFkYWxhaCAwCgogICAgLy8gSXRlcmFzaSBtZWxhbHVpIHNldGlhcCB0aXRpawogICAgZm9yIChpbnQgaSA9IDE7IGkgPCBuOyArK2kpIHsKICAgICAgICBkcFtpXSA9IDA7IC8vIEluaXNpYWxpc2FzaSBqYXJhayB0ZXJqYXVoIGtlIHRpdGlrIGkKCiAgICAgICAgLy8gSXRlcmFzaSBtZWxhbHVpIHNlbXVhIHRpdGlrIHNlYmVsdW1ueWEKICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGk7ICsraikgewogICAgICAgICAgICAvLyBIaXR1bmcgamFyYWsgaG9yaXpvbnRhbCBhbnRhcmEgdGl0aWsgaiBkYW4gaQogICAgICAgICAgICBpbnQgaG9yaXpvbnRhbF9kaXN0ID0gYWJzKHBvaW50c1tpXS54IC0gcG9pbnRzW2pdLngpOwoKICAgICAgICAgICAgLy8gUGVyYmFydWkgbmlsYWkgZHBbaV0KICAgICAgICAgICAgZHBbaV0gPSBtYXgoZHBbaV0sIGRwW2pdICsgaG9yaXpvbnRhbF9kaXN0KTsKICAgICAgICB9CiAgICB9CgogICAgLy8gSGFzaWwgYWtoaXIgYWRhIGRpIGRwW24tMV0KICAgIGNvdXQgPDwgIkphcmFrIGhvcml6b250YWwgdGVyamF1aCBrZSB0aXRpayB0ZXJha2hpcjogIiA8PCBkcFtuLTFdIDw8IGVuZGw7CgogICAgcmV0dXJuIDA7Cn0=