http://poj.org/problem?id=1046
纯水题。。找距离最短的输出。。
#include<stdio.h> #include<math.h> const int INF=1<<28; struct node { int r; int g; int b; } a[20]; int main() { int i,r1,g1,b1,dis,pos; for (i = 0 ; i < 16; i ++) { scanf("%d%d%d",&a[i].r,&a[i].g,&a[i].b); } while(1) { int min = INF; scanf("%d%d%d",&r1,&g1,&b1); if(r1==-1&&g1==-1&&b1==-1) break; for (i = 0; i < 16; i ++) { dis = (r1-a[i].r)*(r1-a[i].r)+(g1-a[i].g)*(g1-a[i].g)+(b1-a[i].b)*(b1-a[i].b); if(dis < min) { pos = i; min = dis; } } printf("(%d,%d,%d) maps to (%d,%d,%d) ",r1,g1,b1,a[pos].r,a[pos].g,a[pos].b); } return 0; }