IT民工
加油!

先输入16个像素点,然后每输入一个像素点,输出与其最相近的像素点。

 

/* Accepted 176K 0MS C++ 664B 2012-05-04 22:34:22 */

#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#define MAXN 20
int A[MAXN], B[MAXN], C[MAXN];
int a, b, c;
int k;

int main()
{
    for( int i = 0; i < 16; i ++)
        scanf( "%d%d%d", &A[i], &B[i], &C[i]);
    while( scanf( "%d%d%d", &a, &b, &c) == 3)
    {
        if( a == -1 || b == -1 || c == - 1) break;
        double min = 0x3f3f3f3f;
        for( int i = 0; i < 16; i ++)
        {
            double ans = sqrt( (double)((a - A[i]) * ( a - A[i]) + ( b - B[i]) * ( b - B[i]) + (c - C[i]) * ( c - C[i]) ));
            if( min > ans) {
                min = ans;
                k = i;
            }
        }
        printf( "(%d,%d,%d) maps to (%d,%d,%d)\n", a, b, c, A[k], B[k], C[k]);
    }
    return 0;
}

 

 

 

posted on 2012-05-04 22:43  找回失去的  阅读(182)  评论(0编辑  收藏  举报