#include <iostream>
#include <stdio.h>
#include <time.h>
using namespace std;
int a[100]={0};
int n=10;
int i=0,k=0;
int flag=0;
int juli(int a,int b)
{
return (a-b)*(a-b);
}
int paixu(int *a)
{
int i1=0;
int jh=0;
int m=0;
for(i1=0;i1<10;i1++)
{ if(a[i1]<a[i1+1] )
{ jh=a[i1];
a[i1]=a[i1+1];
a[i1+1]=jh;
}
else
m=i1+1;
}
return m;
}
int paixu2(int *a)
{
int i1=0;
int jh=0;
int m=0;
for(i1=0;i1<100;i1++)
{ if(a[i1]<a[i1+1] )
{ jh=a[i1];
a[i1]=a[i1+1];
a[i1+1]=jh;
}
else
m=i1+1;
}
return m;
}
void ql(int a[10][100])
{
int i,j;
for(i=0;i<10;i++)
for(j=0;a[i][j]!='/0';j++)
a[i][j]=0;
}
void zxjuli( int a[10][100],int *b)
{
int i2=0,j2=0,k2=0,l2;
int e[100];
for(i2=0;i2<10;i2++)
{
for(l2=0;e[l2]!='/0';l2++)
e[l2]=0;
for(j2=0;a[i2][j2]!='/0';j2++)
for(k2=0;a[i2][k2]!='/0';k2++ )
{
if(k2!=j2)
e[j2]+=juli(a[i2][j2],a[i2][k2]);
else
continue;
}
flag=paixu2(e);
b[i2]=a[i2][flag];
}
}
int b[10]={0};
int c[10][100]={0};
int j=0;
int d[10]={0};
int ax[100];
int main()
{
srand((unsigned)time(NULL));
int ix[10]={0};
for(i=0;i<10;i++)
ix[i]=1;
for( i=0;i<100;i++)
{ a[i]= 1+rand()%99;
ax[i]=a[i];
}
for(i=0;i<100;i++)
cout<<a[i]<<" ";
cout<<endl;
int t=0;
for(i=0;i<10;i++)
{
t=1+rand()%99; //随机选出10个中心
b[i]=a[t];
a[t]=-1;
}
for(i=0;i<10;i++)
c[i][0]=b[i];
for(i=0;i<100;i++)
if(a[i]!=-1)
{ for(k=0;k<10;k++)
{
d[i]=juli(a[i],b[k]);
flag=paixu(d);
}
c[flag][ix[flag]++]=a[i];
}
int ay[90];
for(j=0;j<100;j++)
{
for(i=0;i<10;i++)
ix[i]=1;
zxjuli(c,b);
int t=0;
for(i=0;i<100;i++)
{ for(k=0;k<10;k++)
{ if(ax[i]!=b[k])
flag=1;
else
{flag=0;
break;
}
}
if(flag==1)
ay[t++]=ax[i];
}
ql(c);
c[i][0]=b[i];
for(i=0;i<90;i++)
for(k=0;k<10;k++)
{ d[i]=juli(ay[i],b[k]);
flag=paixu(d);
c[flag][ix[flag]++]=a[i];
}
}
for(i=0;i<10;i++)
for(j=0;c[i][j]!='/0';j++)
cout<<i<<":"<<" "<<c[i][j]<<" ";
cout<<endl;
return 0;
}