http://poj.org/problem?id=1046
据说这个题是个水题,但我还是WA了好几次,最后才改对了
#include<cstdio>
#include<cstring>
#include<iostream>
#include<cmath>
using namespace std;
#define MAXN 1000000.0
int a[][],b[];
double dis[];
int count ,flag ;
int main()
{
int i;
for(i=;i <= ;i++)
{
for(int j=; j <= ; j++)
{
scanf("%d",&a[i][j]);
}
} for( i = ;i < MAXN ; i++)
{
for(int j = ; j <= ; j++)
{
scanf("%d",&b[j]);
if(b[j]==-)
flag++;
}
if(flag==)
break;
double min = MAXN;
for(int k = ; k <= ; k++)
{
int sum = ;
for(int j = ; j <= ; j++)
{
sum += (a[k][j]-b[j])*(a[k][j]-b[j]);
}
dis[k] = sqrt((double)sum);
if(dis[k]<min)
{
min =dis[k];
count = k ;
}
}
printf("(%d,%d,%d) maps to (%d,%d,%d)\n",b[],b[],b[],a[count][],a[count][],a[count][]);
}
return ;
}