C/C++

Программирование на с++

Даны координаты 20 точек на прямой. Определить номера двух точек, расстоя-ние между которыми наибольшее (считать, что такая пара точек единственная).
 #include  
 #include  
 using namespace std; 
 int main() 
 { 
     const int N = 20; // количество точек 
     double x[N] = {0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0}; // координаты точек 
     double max_dist = -1.0; // максимальное расстояние 
     int max_i = 0, max_j = 0; // номера точек, соответствующие максимальному расстоянию 
     // перебираем все пары точек и вычисляем расстояние между ними 
     for (int i = 0; i < N; i++) 
     { 
         for (int j = i + 1; j < N; j++) 
         { 
             double dist = abs(x[i] - x[j]); 
             if (dist > max_dist) 
             { 
                 max_dist = dist; 
                 max_i = i; 
                 max_j = j; 
             } 
         } 
     } 
     // выводим результаты 
     cout
РМ
Руслан Миниахметов
536
Лучший ответ
Валерий Детков
 Код
Можно
писать
в
несколько
строк
CHATGPT:

 #include  
#include
#include

int main() {
// Ввод данных
int n;
std::cin >> n;
std::vector points(n);
for (int i = 0; i < n; i++) std::cin >> points[i];

// Поиск максимального расстояния между двумя точками
int max_dist = 0;
int max_p1 = 0;
int max_p2 = 0;
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
int dist = std::abs(points[i] - points[j]);
if (dist > max_dist) {
max_dist = dist;
max_p1 = i;
max_p2 = j;
}
}
}

// Вывод результатов
std::cout