Untitled

mail@pastecode.io avatar
unknown
plain_text
a year ago
1.5 kB
5
Indexable
Never
#include<bits/stdc++.h>
#define ll long long int
using namespace std;

int main(){
	int T; cin >> T;
	while(T--){
	 	pair<int, int> H; pair<int, int> A; pair<int, int> B; pair<int, int> O;
	 	cin >> H.first >> H.second;
	 	cin >> A.first >> A.second;
	 	cin >> B. first >> B.second;
	 	O.first = 0; O.second = 0;

	 	float distance[10] = {};
	 	// home to a
	 	distance[0] = sqrt(pow(H.first - A.first,2) + pow(H.second - A.second, 2)); 

	 	// a to b
	 	distance[1] = sqrt(pow(A.first - B.first,2) + pow(A.second - B.second, 2));

	 	//home to b
	 	distance[2] = sqrt(pow(B.first - H.first,2) + pow(H.second - B.second, 2));

	 	//home to origin
	 	distance[3] = sqrt(pow(H.first - O.first,2) + pow(H.second - O.second, 2));

	 	//a to origin
	 	distance[4] = sqrt(pow(A.first - O.first,2) + pow(A.second - O.second, 2));

	 	//b to origin
	 	distance[5] = sqrt(pow(B.first - O.first,2) + pow(B.second - O.second, 2));


	 	double ans[3] = {1e5, 1e5, 1e5};
	 	// if O is within A or B
	 	bool C1 = (distance[4] <= distance[1]/2) || (distance[5] <= distance[1]/2);

	 	// if H is within A or B   
	 	bool C2 = (distance[0] <= distance[1]/2) || (distance[2] <= distance[1]/2);


	 	if(C1 && C2){
	 		 ans[0] = distance[1]/2;
	 	}

	 	ans[1] = max(distance[0] , distance[4]);
	 	ans[2] = max(distance[2] , distance[5]);

	 	double min = 1e5;
	 	for(int i = 0; i < 3; i++){
	 		if(ans[i] < min){
	 			min = ans[i];
	 		}

	 	}
	 	cout << min << endl;

	}	
	return 0;
}