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); } }