Advertisement
Infiniti_Inter

For Alisa(page 66 problem 13)

May 5th, 2019
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.50 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <windows.h>//для system("pause")
  4.  
  5. using namespace std;
  6.  
  7. ifstream in("input.txt");
  8.  
  9. struct Point
  10. {
  11.     double x, y, z;
  12.  
  13.     void getPoint()
  14.     {
  15.         in >> x >> y >> z;
  16.     }
  17.     void printPoint()
  18.     {
  19.         cout << x << ' ' << y << ' ' << z << endl;
  20.     }
  21. };
  22.  
  23. double sqr(double a)
  24. {
  25.     return a * a;
  26. }
  27.  
  28. double getRange(Point a, Point b)
  29. {
  30.     return sqr(a.x - b.x) + sqr(a.y - b.y) + sqr(a.z - b.z);
  31. }
  32.  
  33. const int MAXSIZE = 100;
  34. int main()
  35. {
  36.     Point a[MAXSIZE];// массив точек
  37.     int n;//количество точек
  38.     in >> n;
  39.     for (int i = 0; i < n; ++i)
  40.     {
  41.         a[i].getPoint();
  42.     }
  43.     double answer = 0;
  44.     int idx = 0;
  45.     for (int i = 0; i < n; ++i)//переберем все точки
  46.     {
  47.         //найдем расстояние между i-й точкой и остальными
  48.         double cur = 0;
  49.         for (int j = 0; j < n; ++j)//переберем остальные точки
  50.         {
  51.             cur += getRange(a[i], a[j]);
  52.         }
  53.         if (cur > answer)// если расстояние от текущей точки до остальных больше, чем мы уже нашли
  54.         {
  55.             answer = cur;// обновим максимальное расстояние
  56.             idx = i;// запомним номер точки
  57.         }
  58.     }
  59.     a[idx].printPoint();
  60.     system("pause");
  61. }
  62. /*
  63. Замечание: файл "input.txt" нужно создать
  64.  
  65. пример:
  66.  
  67. file "input.txt":
  68. 5
  69. -1 -2 -3
  70. 0 0 0
  71. 1 2 3
  72. 4 5 1
  73. 15 -12 -31
  74.  
  75. consoleOutput:
  76. 15 -12 -31
  77.  
  78. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement