http://acm.pku.edu.cn/JudgeOnline/problem?id=1046

Код:
#include <stdio.h>
#include <iostream>
#include <math.h>
#include <stdlib.h>
using namespace std;
int main()
{
    int a[17][4];
    int i,k,x,y,z;
    double min,j;
    for (i=1;i<=16;i++)
    scanf("%d%d%d",&a[i][1],&a[i][2],&a[i][3]);
    do
    {
         scanf("%d%d%d",&x,&y,&z);
         if (x==-1&&y==-1&&z==-1) return 0;
         min=1000000;
         for (i=1;i<=16;i++)
         {
             j=sqrt(pow((a[i][1]-x),2)+pow((a[i][2]-y),2)+pow((a[i][3]-z),2));
             if (j<min) 
             {
                  k=i;
                  min=j;
             }
         }
        cout << '(' << x << ',' << y << ',' << z << ')' << " maps to (" << 
                 a[k][1] << ',' << a[k][2] << ',' << a[k][3] << ')' << endl;
    }while (1);
    return 0;
}