fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <cmath>
  4. #include <algorithm> // Diperlukan untuk std::max
  5. #include <utility> // Diperlukan untuk std::pair
  6.  
  7. // Tipe data untuk merepresentasikan sebuah titik
  8. using Point = std::pair<double, double>;
  9.  
  10. // Fungsi untuk menghitung jarak horizontal antara dua titik
  11. double horizontalDistance(const Point& p1, const Point& p2) {
  12. return std::abs(p1.first - p2.first);
  13. }
  14.  
  15. int main() {
  16. // Contoh data titik (subproblem 1: representasi data)
  17. std::vector<Point> points = {{1.0, 2.0}, {5.0, 8.0}, {0.0, 1.5}, {10.0, 3.0}};
  18.  
  19. // Inisialisasi jarak terjauh (subproblem 3: pencarian)
  20. double maxHorizontalDist = 0.0;
  21.  
  22. // Iterasi untuk menemukan jarak terjauh (subproblem 3: iterasi)
  23. // (loop untuk setiap titik)
  24. for (size_t i = 0; i < points.size(); ++i) {
  25. // (loop untuk setiap titik lainnya, menghindari perbandingan ganda)
  26. for (size_t j = i + 1; j < points.size(); ++j) {
  27. // Hitung jarak horizontal (subproblem 2: fungsi jarak)
  28. double dist = horizontalDistance(points[i], points[j]);
  29. // Perbarui jarak maksimum jika jarak saat ini lebih besar
  30. maxHorizontalDist = std::max(maxHorizontalDist, dist);
  31. }
  32. }
  33.  
  34. // Cetak hasil
  35. std::cout << "Jarak horizontal terjauh adalah: " << maxHorizontalDist << std::endl;
  36.  
  37. return 0;
  38. }
Success #stdin #stdout 0.01s 5300KB
stdin
37
100
stdout
Jarak horizontal terjauh adalah: 10