#include using namespace std; #include using namespace atcoder; using ll = long long; int n; using TUP = tuple; TUP p; vector q; double dist(TUP p,double a,double b,double c,double d){ auto &[x,y,z] = p; return abs(a*x+b*y+c*z+d)/sqrt(a*a+b*b+c*c); } tuple convert(TUP a,TUP b,TUP c){ tuple res; TUP ab,ac; { auto [a1,a2,a3] = a; auto [b1,b2,b3] = b; ab = TUP(b1-a1,b2-a2,b3-a3); } { auto [a1,a2,a3] = a; auto [c1,c2,c3] = c; ac = TUP(c1-a1,c2-a2,c3-a3); } { auto [a1,a2,a3] = ab; auto [b1,b2,b3] = ac; auto &[r1,r2,r3,r4] = res; r1 = a2*b3-a3*b2; r2 = a3*b1-a1*b3; r3 = a1*b2-b1*a2; { auto [a1,a2,a3] = a; r4 = -(a1*r1+a2*r2+a3*r3); } } return res; } void solve(){ double ans = 0; for(int i = 0;i> n; { auto &[x,y,z] = p; cin >> x >> y >> z; } q = vector(n); for(auto &[x,y,z]:q)cin >> x >> y >> z; solve(); }