世界上最可爱的珂朵莉

世界上最可爱的珂朵莉

http://www.nowcoder.com/questionTerminal/8c7eea5b254643ec81fba7fd8478555e

解题思路

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;
}
全部评论

相关推荐

头像
10-22 19:18
上海大学 后端
jopajhhdjwnqk:水印都叠杀人书了
点赞 评论 收藏
分享
粗心的雪碧不放弃:纯学历问题,我这几个月也是一直优化自己的简历,后来发现优化到我自己都觉得牛逼的时候,发现面试数量也没有提升,真就纯学历问题
点赞 评论 收藏
分享
3 收藏 评论
分享
牛客网
牛客企业服务