ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

测试

2021-10-10 11:34:41  阅读:93  来源: 互联网

标签:int res long 测试 sc nums1 nums2


// 本题为考试单行多行输入输出规范示例,无需提交,不计分。
package Example;
import java.util.*;
/*
2
5 5 1
5 3 4 1 2
0 6 7 9 8
5 5 0
5 3 4 1 2
0 6 7 9 8

0
1
 */




public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int T = sc.nextInt();
        while(T-- > 0){
            int n = sc.nextInt(),m = sc.nextInt(),k = sc.nextInt();
            long[] nums1 = new long[n];
            long[] nums2 = new long[m];
            for(int i = 0;i < n;++i) nums1[i] = sc.nextLong();
            for(int i = 0;i < m;++i) nums2[i] = sc.nextLong();
            Arrays.sort(nums1); Arrays.sort(nums2);


            long t = k;
            long t1 = Math.min(check(nums1,nums2,t),check(nums2,nums1,t));
            long t2 = Math.min(check(nums1,nums2,-t),check(nums2,nums1,-t));
            long res = Math.min(t1,t2);
            System.out.println(res);
        }
    }

    static long check(long[] nums1,long[] nums2,long t){
        int n = nums1.length,m = nums2.length;
        int p1 = 0,p2 = 0;
        long res = Long.MAX_VALUE;
        while(p1 < n && p2 < m){
            long val = nums1[p1] - nums2[p2]-t;
            if(val  == 0) return 0;
            else if(val > 0){
                ++p2;
                res = Math.min(res,val);
            } else ++p1;
        }
        return res;
    }


}



标签:int,res,long,测试,sc,nums1,nums2
来源: https://www.cnblogs.com/kfcuj/p/15388902.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有