fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <cmath>
  4. #include <algorithm>
  5.  
  6. using namespace std;
  7.  
  8. struct Point {
  9. int x, y;
  10. };
  11.  
  12. int main() {
  13. // Data contoh titik
  14. vector<Point> points = {{0, 0}, {2, 3}, {5, 1}, {8, 6}};
  15. int n = points.size();
  16.  
  17. // Array untuk menyimpan jarak horizontal terjauh dari titik awal ke setiap titik
  18. vector<int> dp(n);
  19. dp[0] = 0; // Jarak ke titik pertama adalah 0
  20.  
  21. // Iterasi melalui setiap titik
  22. for (int i = 1; i < n; ++i) {
  23. dp[i] = 0; // Inisialisasi jarak terjauh ke titik i
  24.  
  25. // Iterasi melalui semua titik sebelumnya
  26. for (int j = 0; j < i; ++j) {
  27. // Hitung jarak horizontal antara titik j dan i
  28. int horizontal_dist = abs(points[i].x - points[j].x);
  29.  
  30. // Perbarui nilai dp[i]
  31. dp[i] = max(dp[i], dp[j] + horizontal_dist);
  32. }
  33. }
  34.  
  35. // Hasil akhir ada di dp[n-1]
  36. cout << "Jarak horizontal terjauh ke titik terakhir: " << dp[n-1] << endl;
  37.  
  38. return 0;
  39. }
Success #stdin #stdout 0.01s 5292KB
stdin
37
100
stdout
Jarak horizontal terjauh ke titik terakhir: 8