#include <iostream>
#include <queue>
#include <vector>
using namespace std;
class comparator{
double* query;
int d;
public:
int operator()( double* point1, double* point2) {
double dist1 = 0,dist2 = 0;
for(int i=0;i<d;i++){
dist1 += (point1[i] - query[i]) * (point1[i] - query[i]);
dist2 += (point2[i] - query[i]) * (point2[i] - query[i]);
}
return dist1 < dist2;
}
comparator(double * query,int d)
{
this->query = query;
this->d = d;
}
};
int main() {
double query[] = {1.0, 2, 3, 4, 5, 6};
comparator pq_cmp(query, 5);
priority_queue <double* , vector<double*>, decltype(pq_cmp) > min_heap(pq_cmp);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8cXVldWU+CiNpbmNsdWRlIDx2ZWN0b3I+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpjbGFzcyBjb21wYXJhdG9yewogICAgZG91YmxlKiBxdWVyeTsKICAgIGludCBkOwogICAgcHVibGljOgogICAgICAgIGludCBvcGVyYXRvcigpKCBkb3VibGUqIHBvaW50MSwgIGRvdWJsZSogcG9pbnQyKSB7CiAgICAgICAgICAgIGRvdWJsZSBkaXN0MSA9IDAsZGlzdDIgPSAwOwogICAgICAgICAgICBmb3IoaW50IGk9MDtpPGQ7aSsrKXsKICAgICAgICAgICAgICAgIGRpc3QxICs9IChwb2ludDFbaV0gLSBxdWVyeVtpXSkgKiAocG9pbnQxW2ldIC0gcXVlcnlbaV0pOwogICAgICAgICAgICAgICAgZGlzdDIgKz0gKHBvaW50MltpXSAtIHF1ZXJ5W2ldKSAqIChwb2ludDJbaV0gLSBxdWVyeVtpXSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIGRpc3QxIDwgZGlzdDI7CiAgICAgICAgfQoKICAgICAgICBjb21wYXJhdG9yKGRvdWJsZSAqIHF1ZXJ5LGludCBkKQogICAgICAgIHsKICAgICAgICAgICAgdGhpcy0+cXVlcnkgPSBxdWVyeTsKICAgICAgICAgICAgdGhpcy0+ZCA9IGQ7CiAgICAgICAgfQp9OwoKaW50IG1haW4oKSB7CiAgICBkb3VibGUgcXVlcnlbXSA9IHsxLjAsIDIsIDMsIDQsIDUsIDZ9OwogICAgCiAgICBjb21wYXJhdG9yIHBxX2NtcChxdWVyeSwgNSk7CiAgICBwcmlvcml0eV9xdWV1ZSA8ZG91YmxlKiAsIHZlY3Rvcjxkb3VibGUqPiwgZGVjbHR5cGUocHFfY21wKSA+IG1pbl9oZWFwKHBxX2NtcCk7CglyZXR1cm4gMDsKfQ==