Toán tin vuotlen.com

Tìm điểm thuộc 1 đoạn gần với một điểm cho trước nhất (Thuật toán chặt nhị phân)

// Tìm điểm thuộc 1 đoạn gần với một điểm cho trước nhất (Thuật toán chặt nhị phân)
#include<bits/stdc++.h>
using namespace std;
typedef pair<double, double> Diem;
#define x first
#define y second
double const eps=1e-4;
double bpkc(Diem A, Diem B){ //binh phuong khoang cach
    return (A.x-B.x)*(A.x-B.x)+(A.y-B.y)*(A.y-B.y);
}
Diem tim(Diem A, Diem B, Diem M){ // tim diem tren AB gan diem M nhat
    while(abs(A.x-B.x)> eps or abs(A.y-B.y)>eps){
        Diem C = {(A.x+B.x)/2, (A.y+B.y)/2}; // make pair{(A.x+B.x)/2, (A.y+B.y)/2}
        bpkc(M, A) > bpkc(M,B) ? A=C: B=C;
    }
    return A;
}
int main(){
    Diem A,B,C,M;
    cin>>A.x>>A.y>>B.x>>B.y>>M.x>>M.y;
    cout<<setprecision(4)<<fixed<<N.x<<" "<<N.y;
}