#include #define alpha 5 using namespace std; using pi=pair; int n,m; int tt; int dist(pi a,pi b){ int res=(a.first-b.first)*(a.first-b.first); res+=(a.second-b.second)*(a.second-b.second); return res; } vector x; pi g[111][111]; void init_g(){ for(int i=0;ig[i][k].first+g[k][j].first){ g[i][j].first=g[i][k].first+g[k][j].first; g[i][j].second=g[i][k].second; } } } } } bool distinct(int a,int b,int c,int d){ if(a==b){return false;} if(a==c){return false;} if(a==d){return false;} if(b==c){return false;} if(b==d){return false;} if(c==d){return false;} return true; } int output_dis; vector output_coord; vector output_route; int solve(mt19937_64 &eg){ vector p(n); for(int i=0;i vp; for(int i=0;i st; st.insert((i+n-1)%n); st.insert(i); st.insert((j+n-1)%n); st.insert(j); int del=0; for(auto &nx : st){ del-=g[p[nx]][p[(nx+1)%n]].first; } swap(p[i],p[j]); for(auto &nx : st){ del+=g[p[nx]][p[(nx+1)%n]].first; } if(del>0){swap(p[i],p[j]);} } } { vector np; int tg=-1; for(int i=0;ires){ output_dis=res; for(int i=n;i> n >> m; output_dis=2e9; output_coord.resize(m); tt=n+m; x.resize(n+m); for(int i=0;i> x[i].first >> x[i].second; } double deg=(2.0*3.1415926535897932384)/((double)m); for(int rad=0;rad<500;rad+=15){ for(int i=n;i