比赛 2025.6.2 评测结果 TTTTTTTTTT
题目名称 专家系统 最终得分 0
用户昵称 LikableP 运行时间 39.980 s
代码语言 C++ 内存使用 2.15 MiB
提交时间 2025-06-02 12:20:53
显示代码纯文本
#include <cstdio>
#define min(__a, __b) [&](int _a, int _b) {return _a < _b ? _a : _b;} ((__a), (__b))
#define max(__a, __b) [&](int _a, int _b) {return _a > _b ? _a : _b;} ((__a), (__b))

const int MAXN = 1e5 + 10;
const int INF = 0x7fffffff;

struct ITEM {
  int x, y;
} a[MAXN];

int n, k;
int b[MAXN];
int ans = INF;

void work() {
  int xmin = INF, xmax = -INF, ymin = INF, ymax = -INF;
  for (int i = 1; i <= k; ++i) {
    xmin = min(xmin, a[b[i]].x);
    xmax = max(xmax, a[b[i]].x);
    ymin = min(ymin, a[b[i]].y);
    ymax = max(ymax, a[b[i]].y);
  }
  int c = max(xmax - xmin, ymax - ymin);
  ans = min(ans, c);
}

void dfs(int pos) {
  if (pos == k + 1) {
    work();
    return ;
  }
  for (int i = b[pos - 1] + 1; i <= n; ++i) {
    b[pos] = i;
    dfs(pos + 1);
  }
}

int main() {
  freopen("expert.in", "r", stdin);
  freopen("expert.out", "w", stdout);
  scanf("%d %d", &n, &k);
  for (int i = 1; i <= n; ++i) {
    scanf("%d %d", &a[i].x, &a[i].y);
  }
  dfs(1);
  printf("%d\n", ans);
  return 0;
}