三分线

三分线

题目描述

小赛很喜欢看A队和B队的篮球比赛。众所周知,篮球每回合根据投篮远近可以得2分或3分。如果投篮距离小于d那么得2分,大于等于d得3分。我们将d记为三分线。


每次小赛都喜欢通过改变三分线的大小来让自己支持的A队获取更大的优势。现给出两个队伍投篮得分的距离,小赛希望你能够帮他选择一个合理的三分线,使得A队优势最大。


输入

输入数据包含两行。

第一行第一个数为n(1≤n≤2*105), 表示A队进球数,接下来n个正整数表示A队每次进球的投篮位置ai(1≤ai≤2*109)。 

第二行第一个数为m(1≤m≤2*105),表示B队进球数,接下来m个正整数表示B队每次进球的投篮位置bi(1≤bi≤2*109)。


样例输入

3 1 2 3

2 5 6

输出

一个整数,表示A队得分减去B队得分的最大值 

样例输出

3

时间限制 C/C++语言:1000MS 其它语言:3000MS
内存限制 C/C++语言:65536KB 其它语言:589824KB
import java.util.*;
public class Main {


/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int anum = sc.nextInt();
int[] aspot = new int[anum];
for(int i=0;i<anum;i++){
aspot[i] = sc.nextInt();
}
int bnum = sc.nextInt();
int[] bspot = new int[bnum];
for(int i=0;i<bnum;i++){
bspot[i] = sc.nextInt();
}
Arrays.sort(aspot);
Arrays.sort(bspot);
int j=0;
int max = Integer.MIN_VALUE;
for(int i=0;i<anum;i++){
for(;j<bnum;j++){
if(bspot[j]>=aspot[i]){
break;
}
}
int left = (anum-i)*3-(bnum-j)*3+(i*2-j*2);
if(left>max)
max = left;
}
int right = anum*3-bnum*3;
if(right>max)
max = right;
int mid = anum*2-bnum*2;
if(mid>max)
max = mid;
System.out.println(max);
}


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值