我们要使得第K大的和尽可能大,显然是贪心:
首先,组成这K对数字的显然是A中最大的K个数字和B中最大的K个数字。
问题转化为怎样配对使得最小的和最大:
我们发现,如果A1<A2,B1<B2,那么一定是由A1和B2配对较优。`
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int mod=1e9+7;
int a[100010],b[100010];
int main()
{
int n,k,ans=2e8;
cin>>n>>k;
for(int i=1;i<=n;i++)cin>>a[i];
for(int i=1;i<=n;i++)cin>>b[i];
sort(a+1,a+n+1);
sort(b+1,b+n+1);
for(int i=n;i>n-k;i--)
ans=min(ans,a[i]+b[n-k+n+1-i]);
cout<<ans<<endl;
return 0;
}