Khoảng cách từ điểm đến đường thẳng 2

Xem dạng PDF

Gửi bài giải


Điểm: 0,10 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Trên hệ trục tọa độ ~Oxy~, cho một điểm ~A~ có tọa độ nguyên ~(x_A, y_A)~ và một đường thẳng ~d~ đi qua ~2~ điểm ~B(x_B, y_B)~ và ~C(x_C, y_C)~. Hãy tìm khoảng cách từ điểm ~A~ đến đường thẳng ~d~.

Input

Gồm các số nguyên ~x_A, y_A, x_B, y_B, x_C, y_C~ nằm trên cùng ~1~ dòng.

Output

Gồm một dòng duy nhất là khoảng cách từ điểm ~A~ đến đường thẳng ~d~.

Đáp án được tính là đúng nếu sai số không quá ~10^{-6}~.

Sample Input 1

1 1 0 0 2 0

Sample Output 1

1.00000

Bình luận

Hãy đọc nội quy trước khi bình luận.



  • 0
    Libra_Minister  đã bình luận lúc 12, Tháng 11, 2025, 8:25 sửa 6

    after defining ld long double, my solution in C++ is as follows:

    void AmazingSolution() { ld x, y, x1, y1, x2, y2; cin >> x >> y >> x1 >> y1 >> x2 >> y2; ld a = y2 - y1, b = x1 - x2, c = -(x1y2 - x2y1);

    ld son = abs(ax + by + c); ld mot = sqrt(aa + bb); cout << fixed << setprecision(10) << son / mot << "\n"; }


  • -1
    ngoccaidu2008  đã bình luận lúc 28, Tháng 10, 2025, 22:51

    code tham khao:

    #include <bits/stdc++.h>
    using namespace std;
    #define int long long
    #define __Hormer_Nguyen__ signed main()
    #define file(name) if (fopen(name".inp", "r")) { freopen(name".inp", "r", stdin); freopen(name".out", "w", stdout); }
    const int maxn=5+1e5;
    __Hormer_Nguyen__
    {
        ios::sync_with_stdio(false);
        cin.tie(0);
        double xA,yA,xB,yB,xC,yC;
        cin>>xA>>yA>>xB>>yB>>xC>>yC;
        int tmp1=xC-xB;
        int tmp2=yB-yA;
        int tmp3=xB-xA;
        int tmp4=yC-yB;
        double tu=abs(tmp1*tmp2-tmp3*tmp4);
        double mau=sqrt(tmp1*tmp1+tmp4*tmp4);
        cout<<fixed<<setprecision(8)<<tu/mau<<endl;
    }