你一定听过田忌赛马的故事吧? 
    如果3匹马变成1000匹,齐王仍然让他的马按从优到劣的顺序出赛,田忌可以按任意顺序选择他的赛马出赛。赢一局,田忌可以得到200两银子,输一局,田忌就要输掉200两银子,平局的话不输不赢。 请问田忌最多能赢多少银子?

关于输入: 
  输入包含多组测试数据,每组测试数据的第一行是一个整数n(1<=n<=1000),表示田忌和齐王都拥有n匹马。接下来一行是n个整数,表示田忌的马的速度,下一行也是n个整数,表示齐王的马的速度。 输入的最后以一个0表示结束。

关于输出:

对每组数据,输出一个整数,表示田忌至多可以赢多少银子,如果田忌赢不了,就输出一个负数,表示田忌最少要输多少银子。

例子输入:


92 83 71 
95 87 74 

20 20 
20 20 

20 19 
22 18 
0

例子输出: 
200 

0

package tianjisaima;

import java.util.Scanner;
import java.util.List;
import java.util.ArrayList;
import java.util.Collections;
public class Main{
public static void main(String args[]){
int n, m;
List<Integer> list1=new ArrayList<Integer>();
List<Integer> list2=new ArrayList<Integer>();
Scanner in=new Scanner(System.in); while(true){
n=in.nextInt();
if(n==0) break; //输入数据
for(int i = 0; i < n; ++i)
{
list1.add(in.nextInt());
}
for(int i = 0; i < n; ++i)
{
list2.add(in.nextInt());
}
//处理数据
Collections.sort(list1);
Collections.sort(list2); int i=0, j=0, x=n-1, y=n-1,count=0;
boolean bLast=true; while(bLast)
{
//是否是最后一匹马
if(x==i)
bLast=false; if(list1.get(x) > list2.get(y))
{//如果田忌当前最好的马可以胜齐王最好的马,那么比一场
x--;
y--;
count+=200;
}
else if(list1.get(i)> list2.get(j))
{//如果田忌当前最差的马可以胜齐王最差的马,那么比一场
i++;
j++;
count += 200;
}
else
{//否则,让田忌最差的马和齐王最好的好比一场
if(list1.get(i) < list2.get(y))
count -= 200;
i++;
y--;
}
}
System.out.println(count);
list1.clear();
           list2.clear();
} }
}

最新文章

  1. jQuery fsBanner 手风琴
  2. ios UIView autoresizingSubview 属性
  3. 既使用maven又使用本地Jar包
  4. Kinect学习笔记(五)&mdash;&mdash;更专业的深度图
  5. ERROR com.opensymphony.xwork2.interceptor.ParametersInterceptor.error:34 - Developer Notification
  6. Help Me Escape (ZOJ 3640)
  7. HDU 5944 暴力
  8. opencv中的图像区域复制
  9. pc端页面打包成安卓apk
  10. MySQL创建全文索引
  11. 基于Kafka Connect框架DataPipeline在实时数据集成上做了哪些提升?
  12. [开源]Entity Framework 6 Repository 一种实现方式
  13. java中组合与聚合(聚集)的区别
  14. hadoop 企业应用案例--大众点评
  15. MySQL安装教程(mysql5.6_bundle)
  16. SDIBT 2345 (3.2.1 Factorials 阶乘)
  17. SpringMVC学习笔记一:基本概念,执行流程与开发步骤
  18. 更换 CentOS 7 的下载源为阿里云
  19. BZOJ1002【FJOI2007】轮状病毒
  20. Hibernate主键生成策略详解

热门文章

  1. js timestamp与datetime之间的相互转换
  2. haffman哈夫曼编码的实现
  3. Windows7 64bits下安装TensorFlow CPU版本(图文详解)
  4. NodeJS-004-Oracle驱动编译
  5. JS 操作iframe
  6. js部署中如何提高页面加载速度
  7. EUI组件之DataGroup
  8. Android 性能测试工具- GT
  9. 【模块化开发】------requireJS的基本使用------【巷子】
  10. SpringIoc的精彩讲解