#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define FOR(i,a,b) for(int i(a);i<(b);i++) #define REP(i,n) FOR(i,0,n) #define CL(a,b) memset(a,b,sizeof(a)) const int M=200; const int N=2000; const double inf=1e250; const double eps=1e-20; const double pi=acos(-1.0); struct point { double x,y; bool operator < (const point a)const { if(y==a.y) return x0 && cross(stac[top],p[i],stac[top-1])<=0) top--; stac[++top]=p[i]; } int temp=top; for(int i=n-2;i>=0;i--) { while(top>temp && cross(stac[top],p[i],stac[top-1])<=0) top--; stac[++top]=p[i]; } --top; } point getpoint(double x,double y) { point temp; temp.x=x;temp.y=y; return temp; } double dist(point a,point b) { return sqrt((b.x-a.x)*(b.x-a.x)*1.0+(b.y-a.y)*(b.y-a.y)); } double alldis(point a) { double dis=0; for(int i=0;i<=top;i++) { dis+=dist(a,stac[i]); } return dis; } int main() { int T; scanf("%d",&T); while(T--) { scanf("%d",&n); for(int i=0;i0.2) { bool flag=true; while(flag) { flag=false; point qq=getpoint(pp.x,pp.y+step),tt=pp; double temp=alldis(qq); if(temp0) puts(""); } return 0; }