解题思路

t=b[i]-a[i],要求t的最小值,应尽可能缩小数组a与数组b之间的差距,所以将排序后的数组a前x个元素中小于y的值替换为y
1.获取输入n,x,y,a[],b[]
2.对数组a、b进行排序
3.将数组a前x个元素中小于y的值替换为y
4.对数组a重新排序
5.t为b[i]-a[i]的最大值

#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
    int n,x,y;
    //分别获取n,x,y
    cin>>n>>x>>y;
    int a[n];
    int b[n];
    int t=0;
    //获取数组a、数组b
    for (int i = 0; i < n; ++i)
    {
        cin>>a[i];
    }
    for (int i = 0; i < n; ++i)
    {
        cin>>b[i];
    }
    //将数组a、b进行排序
    sort(a,a+n);
    sort(b,b+n);
    //将数组a前x个元素中小于y的值替换为y
    for (int i = 0; i < x; ++i)
    {
        if (a[i]<y)
        {
            a[i]=y;
        }

    }
    //数组a重新排序
    sort(a,a+n);
    //求b[i]-a[i]的最大值即为t
    for (int i = 0; i < n; ++i)
    {
        if (b[i]-a[i]>t)
        {
            t=b[i]-a[i];
        }
    }
    cout<<t<<endl;
    return 0;
}