您的位置:首页 > 其它

ZOJ-1067-Color Me Less

2007-12-30 01:09 441 查看
Nothing to say,整理好输入,选一个最小的距离就是了

//2007-12-30 00:57:25 Accepted 1067 C++ 00:00.00 396K
#include<stdio.h>
#include<math.h>

int target[16][3];
int now[3];

double distance(int a[3],int b[3])
{
double re;
re = (a[0]-b[0])*(a[0]-b[0])+(a[1]-b[1])*(a[1]-b[1])+(a[2]-b[2])*(a[2]-b[2]);
return sqrt(re);
}

int findmin(int a[3])
{
int i,key=0;
double min=distance(a,target[0]);
double t;
for(i=1;i<16;i++)
{
t = distance(a,target[i]);
if((min-t)>0.00001)
{
min = t;
key = i;
}
}
return key;
}

int main()
{
freopen("1067.txt","r",stdin);
int i;
for(i=0;i<16;i++)
{
scanf("%d %d %d", &target[i][0],&target[i][1],&target[i][2]);
}

while(scanf("%d %d %d", &now[0], &now[1], &now[2]) != EOF)
{
if(now[0]==-1 && now[1]==-1 && now[2]==-1)
break;
else
{
i = findmin(now);
printf("(%d,%d,%d) maps to (%d,%d,%d)/n",now[0],now[1],now[2],target[i][0],target[i][1],target[i][2]);
}
}
fclose(stdin);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: