比赛 收心赛 评测结果 AATTTTTTTT
题目名称 卡牌游戏 最终得分 20
用户昵称 xuyuqing 运行时间 16.817 s
代码语言 C++ 内存使用 12.55 MiB
提交时间 2026-02-24 11:18:39
显示代码纯文本

#include <algorithm> 
#include <cstdio>
#include <iostream>

using namespace std;

const int N = 1114514;

int n;
int m;
int a[N];
int b[N];
bool flag[N];
int res = 1e9 + 10;

void dfs (int now, int use) {
    if (now == n + 1) {
        int maxn = 0;
        int minn = 1e9 + 10;
        for (int i = 1; i <= n; i++) {
            if (flag[i]) {
                maxn = max (maxn, b[i]);
                minn = min (minn, b[i]);
            }
            else {
                maxn = max (maxn, a[i]);
                minn = min (minn, a[i]);
            }
        }
        res = min (res, maxn - minn);
        return;
    }
    
    if (use < m) {
        flag[now] = 1;
        dfs (now + 1, use + 1);
    }
    flag[now] = 0;
    dfs (now + 1, use);
}

int main () {

	freopen ("card.in", "r", stdin);
	freopen ("card.out", "w", stdout);
	
	cin >> n >> m;
	for (int i = 1; i <= n; i++) {
	    cin >> a[i];
    }
	for (int i = 1; i <= n; i++) {
	    cin >> b[i];
    }
    dfs (1, 0);
    cout << res << endl;

	return 0;
}