水题,就直接上代码了:
#include<iostream>
using namespace std;
struct Color
{
int r,g,b;
}c[16];
int cmp(Color c1,Color c2)
{
return (c1.r-c2.r)*(c1.r-c2.r)+(c1.g-c2.g)*(c1.g-c2.g)+(c1.b-c2.b)*(c1.b-c2.b);
}
int main()
{
int r,g,b;
for(int i=0;i<16;i++)
{
cin>>r>>g>>b;
c[i]={r,g,b};
}
Color temp;
while(cin>>r>>g>>b && (r!=-1) && (g!=-1) && (b!=-1))
{
temp={r,g,b};
int mini,min=0x7FFFF;
for(int i=0;i<16;i++)
{
int num=cmp(temp,c[i]);
if(num<min)
{
min=num;
mini=i;
}
}
cout<<'('<<temp.r<<','<<temp.g<<','<<temp.b<<')'<<" maps to "<<'('<<c[mini].r<<','<<c[mini].g<<','<<c[mini].b<<')'<<endl;
}
return 0;
}