| 比赛 |
收心赛 |
评测结果 |
WWWWAATTTT |
| 题目名称 |
卡牌游戏 |
最终得分 |
20 |
| 用户昵称 |
对立猫猫对立 |
运行时间 |
10.205 s |
| 代码语言 |
C++ |
内存使用 |
6.04 MiB |
| 提交时间 |
2026-02-24 09:47:40 |
显示代码纯文本
#include <bits/stdc++.h>
//#define int long long
using namespace std;
int n, m, limit;
int absx(int x) {
if(x < 0) return -x;
return x;
}
struct Card {
int a, b;
bool operator<(const Card t) const {
return a < t.a;
}
bool operator>(const Card t) const {
return a > t.a;
}
};
Card card[1000005];
int quemin = 0x3f3f3f3f, quemax = 0xc0c0c0c0;
signed main() {
freopen("card.in", "r", stdin);
freopen("card.out", "w", stdout);
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n >> m;
for(int i = 1; i <= n; i++) {
cin >> card[i].a;
if(i > m && i <= n - m) {
quemin = min(quemin, card[i].a);
quemax = max(quemax, card[i].a);
}
}
for(int i = 1; i <= n; i++) {
cin >> card[i].b;
}
sort(card + 1, card + 1 + n);
int ans = 0x3f3f3f3f;
for(int use = 0; use <= m; use++) {
for(int x = 0; x <= use; x++) {
int mini = quemin, maxi = quemax;
for(int l = 1; l <= m; l++) {
if(l <= x) {
mini = min(mini, card[l].b);
maxi = max(maxi, card[l].b);
}
else {
mini = min(mini, card[l].a);
maxi = max(maxi, card[l].a);
}
}
for(int r = x + 1; r <= m; r++) {
if(r < use) {
mini = min(mini, card[n - (r - x - 1)].b);
maxi = max(maxi, card[n - (r - x - 1)].b);
}
else {
mini = min(mini, card[n - (r - x - 1)].a);
maxi = max(maxi, card[n - (r - x - 1)].a);
}
}
// cerr << mini << " " << maxi << endl;
if(mini != 0x3f3f3f3f && maxi != 0xc0c0c0c0) ans = min(ans, maxi - mini);
}
}
cout << ans << endl;
return 0;
}