#include #define ll long long using namespace std; ll n,r,br=1,endtime,maxsize=0; // bool dn4[100005],dn5[100005]; struct tacka{ int x;/**X coordinate**/ int y;/**Y coordinate**/ int idx;/**Initial index**/ double avgdis;/**Average distance of a center from all the other centers**/ }t[100005]; bool stop; vectorv; void unos(){ scanf("%lld %lld",&n,&r); for(int i=1;i<=n;i++){ scanf("%d %d",&t[i].x,&t[i].y); t[i].idx=i; } } ll distanca(int x,int y,int x2,int y2){ ll raz1=abs(x-x2); ll raz2=abs(y-y2); ll dis=((raz1*raz1)+(raz2*raz2)); return dis; } bool CompareCentersX(tacka a,tacka b){ return a.xMORE; void NsquaredX(){ sort(t+1,t+n+1,CompareCentersX); bool stop; MORE.push_back(t[1]); v.push_back(t[1].idx); for(int i=2;i<=n;i++){ stop=false; for(int j=0;jMORE2; vectorv2; bool CompareCentersY(tacka a,tacka b){ return a.yb.x;} bool CompareCentersDecreasingY(tacka a,tacka b){ return a.y>b.y;} void NsquaredY(){ sort(t+1,t+n+1,CompareCentersY); bool stop2; MORE2.push_back(t[1]); v2.push_back(t[1].idx); for(int i=2;i<=n;i++){ stop2=false; for(int j=0;jMORE3; vectorv3; void NsquaredDecreasingX(){ sort(t+1,t+n+1,CompareCentersDecreasingX); bool stop3; MORE3.push_back(t[1]); v3.push_back(t[1].idx); for(int i=2;i<=n;i++){ stop3=false; for(int j=0;jMORE4; vectorv4; void NsquaredDecreasingY(){ sort(t+1,t+n+1,CompareCentersDecreasingY); bool stop4; MORE4.push_back(t[1]); v4.push_back(t[1].idx); // dn4[t[1].idx]=true; for(int i=2;i<=n;i++){ stop4=false; for(int j=0;jfinale; vectorfindexi; void RandShuffle(){ vectormalci; vectorindexi; malci.clear(); indexi.clear(); malci.push_back(t[1]); indexi.push_back(t[1].idx); for(int j=2;j<=n;j++){ bool stop=false; for(int k=0;k=maxsize){ finale.clear(); findexi.clear(); for(int l=0;l b.avgdis; } vectorez; vectorv9; void NsquaredDistance(){ sort(t+1,t+n+1,CompareDistances); ez.push_back(t[1]); v9.push_back(t[1].idx); for(int i=2;i<=n;i++){ bool stop =false; for(int j=0;jdistanca(b.x,b.y,kells.x,kells.y);} vectorgg; vectorwp; void SortByDistance(){ sort(t+1,t+n+1,CompareCentersX); kells=t[1]; sort(t+1,t+n+1,CompareByDiscFrom); gg.push_back(kells); wp.push_back(kells.idx); for(int i=1;ifinale4; vectorfindexi4; void NCubedX(){ int maxsize=0; sort(t+1,t+n+1,CompareCentersX); for(int i=1;i<=n;i++){ vectormalci4; vectorindexi4; malci4.clear(); indexi4.clear(); malci4.push_back(t[i]); indexi4.push_back(t[i].idx); for(int j=1;j<=n;j++){ bool stop=false; if(j!=i){ for(int k=0;k=maxsize){ finale4.clear(); findexi4.clear(); for(int l=0;lfinale3; vectorfindexi3; void NCubedDecreasingY(){ int maxsize=0; sort(t+1,t+n+1,CompareCentersDecreasingY); for(int i=1;i<=n;i++){ vectormalci3; vectorindexi3; malci3.clear(); indexi3.clear(); malci3.push_back(t[i]); indexi3.push_back(t[i].idx); for(int j=1;j<=n;j++){ bool stop=false; if(j!=i){ for(int k=0;k=maxsize){ finale3.clear(); findexi3.clear(); for(int l=0;lMORE5; vectorv5; void TakeTheLastX(){ sort(t+1,t+n+1,CompareCentersX); bool stop5; MORE5.push_back(t[n]); v5.push_back(t[n].idx); // dn5[t[n].idx]=true; for(int i=1;iMORE6; vectorv6; void ThirdFront(){ sort(t+1,t+n+1,CompareCentersX); MORE6.push_back(t[3]); v6.push_back(t[3].idx); for(int i=1;i<=n;i++){ bool stop=false; if(i==3)continue; for(int j=0;jMORE10; vectorv10; void ThirdFromBehind(){ sort(t+1,t+n+1,CompareCentersX); MORE10.push_back(t[n-2]); v10.push_back(t[n-2].idx); for(int i=1;i<=n;i++){ bool stop=false; if(i==n-2)continue; for(int j=0;jfinale2; vectorfindexi2; void NCubedY(){ int maxsize=0; sort(t+1,t+n+1,CompareCentersY); for(int i=1;i<=n;i++){ vectormalci2; vectorindexi2; malci2.clear(); indexi2.clear(); malci2.push_back(t[i]); indexi2.push_back(t[i].idx); for(int j=1;j<=n;j++){ bool stop=false; if(j!=i){ for(int k=0;k=maxsize){ finale2.clear(); findexi2.clear(); for(int l=0;lmomir; vectorkosovka; void SecondToLastX(){ sort(t+1,t+n+1,CompareCentersX); momir.push_back(t[n-1]); kosovka.push_back(t[n-1].idx); for(int i=1;i<=n;i++){ bool stop=false; if(i==n-1)continue; for(int j=0;jleri; vectorlero; void LeftRight(){ sort(t+1,t+n+1,CompareCentersX); leri.push_back(t[1]); lero.push_back(t[1].idx); int l=2; int r2=n; int st=1; while(l