Codeforces Global Round 3 B - Born This Way
比赛的时候一直在想怎么删航线A和航线B的航班才能最优,赛后才知道原来枚举删除个数,取max就好了,越来越菜了。
#include<bits/stdc++.h>
using namespace std;
#define fuck(x) cout<<#x<<" "<<x<<endl;
const int maxn=2e5+10;
int a[maxn],b[maxn],n,m,ta,tb,k,ans;
int main()
{
ans=0;
scanf("%d%d%d%d%d",&n,&m,&ta,&tb,&k);
for(int i=1;i<=n;i++) scanf("%d",&(a[i])),a[i]+=ta;
for(int i=1;i<=m;i++) scanf("%d",&(b[i]));
for(int i=0;i<=k;i++)
{
int pos=lower_bound(b+1,b+m+1,a[1+i])-b;
if(pos+(k-i)-1>=m||i>=n)
{
printf("-1\n");
return 0;
}
ans=max(ans,b[pos+k-i]+tb);
}
printf("%d\n",ans);
return 0;
}