ll@n,m=n*(n-1)>>1,d[m],v[m],x[n],y[n],t[n]; rd((x,y,t)(n)); if(1){ ll k=0; rep(i,n){ rep(j,i){ v[k]=i|j<<10; d[k]= t[i]==t[j] ? (x[i]-x[j])**2+(y[i]-y[j])**2 : x[i]**2+y[i]**2+x[j]**2+y[j]**2-Isqrt(4*(x[i]**2+y[i]**2)*(x[j]**2+y[j]**2)); ++k; } } } sortA(m,d,v); if(1){ unionFind u('m',n,1); ll k=0; while(u(0)!=u(n-1)){ u(v[k]>>10,v[k]&1023); ++k; } wt(d[k-1]); }