#include #include #include #include using namespace std; const int MAX = 1000; const int MAXD = 10000; const double INF = 10*MAXD*MAXD; struct point { double x, y; }; point judges[MAX], tar[MAX], feather[MAX]; bool usedJT[MAX], usedJF[MAX], usedT[MAX], usedF[MAX]; int nJudge, nTar, nFeath; struct element { double dist; int iJ; int iTF; bool isTar; }; int compare(const void* p1, const void* p2) { element* e1 = (element *)p1; element* e2 = (element *)p2; if (e1->dist < e2->dist) return -1; else if (e1->dist > e2->dist) return 1; else if (e1->iJ < e2->iJ) return -1; else if (e1->iJ > e2->iJ) return 1; else return e1->iTF - e2->iTF; } int main() { cin >> nJudge >> nTar >> nFeath; element *a = new element[nJudge*nTar + nJudge*nFeath]; for(int i=0; i> judges[i].x >> judges[i].y; usedJT[i] = usedJF[i] = false; } int nElem = 0; for(int i=0; i> tar[i].x >> tar[i].y; usedT[i] = false; for(int j=0; j> feather[i].x >> feather[i].y; usedF[i] = false; for(int j=0; j