SaveText.Ru

Без имени
  1. #include <iostream>
  2. #include <iomanip>
  3. #include <cmath>
  4. using namespace std;
  5. long double eps = 1e-10;
  6. int main() {
  7.         int x, y, x1, y1, x2, y2;
  8.         cin >> x >> y >> x1 >> y1 >> x2 >> y2;
  9.         long long skal_ac = (x2 - x1) * (x - x1) + (y2 - y1) * (y - y1);
  10.         long long skal_ab = (x1 - x2) * (x - x2) + (y1 - y2) * (y - y2);
  11.         long double dlina_ca = sqrt((x - x1) * (x - x1) + (y - y1) * (y - y1));
  12.         long double dlina_cb = sqrt((x2 - x) * (x2 - x) + (y2 - y) * (y2 - y));
  13.         long double dlina_ab = sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
  14.         if (skal_ac <= 0) {
  15.                 cout << fixed << setprecision(4) << dlina_ca;
  16.                 return 0;
  17.         }
  18.         long long skal_bc = x2 * x + y2 * y;
  19.         long long skal_ba = x2 * x1 + y2 * y1;
  20.         if (skal_ab <= 0) {
  21.                 cout << fixed << setprecision(4) << dlina_cb;
  22.                 return 0;
  23.         }
  24.         long long s = (x * y1 + x1 * y2 + x2 * y) - (y * x1 + y1 * x2 + y2 * x);
  25.         if (s <= 0) { s = -s; }
  26.         if (s == 0) {
  27.                 long double nado = 0.0000;
  28.                 cout << fixed << setprecision(4) << nado;
  29.                 return 0;
  30.         }
  31.         //long double p = (dlina_ca + dlina_cb + dlina_ab) / 2;
  32.         //long double visota = (2 * (sqrt(p * (p - dlina_cb) * (p - dlina_ca) * (p - dlina_ab)))) / dlina_ab;
  33.         cout << fixed << setprecision(4) << s / dlina_ab;
  34. }

Share with your friends:

Print