Color Me Less

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;
}
View Code
原文地址:https://www.cnblogs.com/lahblogs/p/3231894.html