H-Tic Tac DREAMIN’_2026牛客寒假算法基础集训营3
1 #include <bits/stdc++.h> 2 using namespace std; 3 double dis(double x1,double x2,double y1,double y2) 4 { 5 return (double(sqrt((pow(x1-x2,2)+pow(y1-y2,2))))); 6 } 7 int main() 8 { 9 int xa,ya,xb,yb; 10 double ans; 11 cin >> xa >> ya >> xb >> yb; 12 if(xa == xb && ya == yb) 13 { 14 cout << "no answer" << endl; 15 return 0; 16 } 17 if(xa == xb) 18 { 19 ans = 4.0 / abs(ya-yb) + xa; 20 cout << ans << endl; 21 return 0; 22 } 23 if(ya == yb) 24 { 25 if (abs(ya*(xa-xb)) != 4) cout << "no answer" << endl; 26 else cout << xa << endl; 27 return 0; 28 } 29 double dxy = dis(xa,xb,ya,yb),dh = 4.0 / dxy; 30 double kxy = 1.0*(ya-yb)*1.0/(xa-xb),x0 = -1.0 * (ya - kxy*xa) * 1.0 / kxy; 31 cout << fixed << setprecision(10) << x0 + double(1.0 * dh * double(1.0 / double(sin(double(atan(abs(kxy))))))) << endl; 32 }
