| 比赛 |
收心赛 |
评测结果 |
AAAAAAAAAA |
| 题目名称 |
卡牌游戏 |
最终得分 |
100 |
| 用户昵称 |
PXCZM |
运行时间 |
0.944 s |
| 代码语言 |
C++ |
内存使用 |
7.22 MiB |
| 提交时间 |
2026-02-24 11:41:48 |
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
int n,m;
pair<int,int>a[1000010];
vector<int>b,c,d,e;
int b1,c1;
int ans;
int main()
{
freopen("card.in","r",stdin);
freopen("card.out","w",stdout);
ios::sync_with_stdio(false);
cin.tie(nullptr);cout.tie(nullptr);
cin>>n>>m;
for(int i=1;i<=n;i++) cin>>a[i].first;
for(int i=1;i<=n;i++) cin>>a[i].second;
ans=a[n].first-a[1].first;
b.push_back(a[1].first);
d.push_back(a[1].first);
b1++;
if(a[1].second>a[1].first)
{
b.push_back(a[1].second);
d.push_back(a[1].second);
b1++;
for(int i=2;i<=n;i++)
{
if(a[i].second>a[i].first)
{
if(a[i].first>b[b1-1]) break;
else
{
b.push_back(min(a[i].second,b[b1-1]));
d.push_back(max(d[b1-1],a[i].second));
b1++;
b[b1-2]=min(b[b1-2],a[i].first);
}
}
else
{
b[b1-1]=min(b[b1-1],a[i].first);
break;
}
}
}
c.push_back(a[n].first);
e.push_back(a[n].first);
c1++;
if(a[n].second<a[n].first)
{
c.push_back(a[n].second);
e.push_back(a[n].second);
c1++;
for(int i=n-1;i>0;i--)
{
if(a[i].second<a[i].first)
{
if(a[i].first<c[c1-1]) break;
else
{
c.push_back(max(a[i].second,c[c1-1]));
e.push_back(min(e[c1-1],a[i].second));
c1++;
c[c1-2]=max(c[c1-2],a[i].first);
}
}
else
{
c[c1-1]=max(c[c1-1],a[i].first);
break;
}
}
}
for(int i=0;i<=m;i++)
{
int b2=min(i,b1-1),c2=min(m-i,c1-1);
ans=min(ans,max(c[c2],d[b2])-min(b[b2],e[c2]));
}
cout<<ans;
return 0;
}