bool cmp(MAP a, MAP b) { if (a.level != b.level) return a.level > b.level; double da = dist(QPOS, a.getCenter()), db = dist(QPOS, b.getCenter()); if (fabs(da - db) > eps) return da < db; da = a.getRatio(), db = b.getRatio(); if (fabs(da - db) > eps) return da < db; da = dist(QPOS, make_pair(a.x2, a.y1)); db = dist(QPOS, make_pair(b.x2, b.y1)); if (fabs(da - db) > eps) return da > db; return a.x1 < b.x1; }