| 比赛 |
收心赛 |
评测结果 |
WWWWWWTTTT |
| 题目名称 |
卡牌游戏 |
最终得分 |
0 |
| 用户昵称 |
彭欣越 |
运行时间 |
8.695 s |
| 代码语言 |
C++ |
内存使用 |
10.89 MiB |
| 提交时间 |
2026-02-24 12:13:04 |
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1000010;
int n,m,a[N],b[N],L,R;
int s1[N],s2[N],s3[N],s4[N];
int mx,mn=1e9,ans=1e9;
int main () {
freopen("card.in","r",stdin);
freopen("card.out","w",stdout);
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
cin >> n >> m;
for (int i=1;i<=n;i++) cin >> a[i];
for (int i=1;i<=n;i++) {
cin >> b[i];
s1[i]=max(s1[i-1],b[i]);
if (i==1) s3[i]=b[i];
else s3[i]=min(s3[i-1],b[i]);
}
s2[n+1]=1e9;
for (int i=n;i>=1;i--) {
s2[i]=min(s2[i+1],b[i]);
if (i==n) s4[i]=b[i];
else s4[i]=max(s4[i+1],b[i]);
}
mx=a[n],mn=a[1];
for (int i=1;i<=n;i++) {
if (a[i]>=b[i]) {
L=i-1;
break;
}
}
for (int i=n;i>=1;i--) {
if (a[i]<=b[i]) {
R=i+1;
break;
}
}
for (int i=1;i<=m;i++) {
for (int j=0;j<=min(i,L);j++) {
if (i-j>R) continue;
//cout << max(a[n-i+j],s1[j]) <<' '<< min(a[i+1],s2[n-i+j+1]) <<' '<< i <<' '<< j <<endl;
ans=min(ans,max(s4[n-i+j+1],max(a[n-i+j],s1[j]))-min(min(a[i+1],s2[n-i+j+1]),s3[j]));
}
}
cout << ans <<endl;
return 0;
}