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