POJ 1046 Color Me Less

問題文要約
そのまま実装。int型でsqrtしなくてもオーバーフローしないかなーとか思ってたけどAcceptできたのでよしとしよう。

#include <cstdio>
#include <algorithm>
#include <vector>

using namespace std;

class color{
public:
  int r,g,b,d;
};

bool LessColor(const color& l, const color& r){ return l.d < r.d;}

int main(){
  vector<color> v(16);
  color a;
  for(int i = 0; i < 16; i++) 
    scanf("%d%d%d",&v[i].r,&v[i].g,&v[i].b);
  
  while(scanf("%d%d%d",&a.r,&a.g,&a.b),(a.r!=-1&&a.g!=-1&&a.b!=-1)){
    for(int i = 0; i < 16; i++){
      v[i].d = (a.r-v[i].r)*(a.r-v[i].r)+(a.g-v[i].g)*(a.g-v[i].g)+(a.b-v[i].b)*(a.b-v[i].b);
    }
    sort(v.begin(),v.end(),LessColor);
    printf("(%d,%d,%d) maps to (%d,%d,%d)\n",a.r,a.g,a.b,v[0].r,v[0].g,v[0].b);
  }
}