#include #include #include typedef struct { int x; int y; int rank; } cell; int main(void) { int n, k, xBoss, yBoss, i, j; scanf("%d %d %d %d", &n, &k, &xBoss, &yBoss); cell *v = calloc(n, sizeof(cell)); for (i = 0; i < n; i++) { scanf ("%d %d", &v[i].x, &v[i].y); v[i].rank = pow(xBoss - v[i].x, 2) + pow(yBoss - v[i].y, 2); } for (j = 0; j < n - 1; j++) { cell min = v[j]; for (i = j + 1; i < n; i++) { if (v[i].rank < min.rank || (v[i].rank == min.rank && (v[i].x < min.x || (v[i].x == min.x && v[i].y < min.y)))) { min = v[i]; v[i] = v[j]; v[j] = min; } } } for (i = 0; i < k; i++) { printf("%d %d\n", v[i].x, v[i].y); } return 0; }