网站大量收购闲置独家精品文档,联系QQ:2885784924

田忌赛马Java解答.pdf

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

⽥忌赛马Java解答

你⼀定听过⽥忌赛马的故事吧?

如果3匹马变成1000匹,齐王仍然让他的马按从优到劣的顺序出赛,⽥忌可以按任意顺序选择他的赛马出赛。赢⼀局,⽥忌可以得到200

两银⼦,输⼀局,⽥忌就要输掉200两银⼦,平局的话不输不赢。请问⽥忌最多能赢多少银⼦?

关于输⼊:

输⼊包含多组测试数据,每组测试数据的第⼀⾏是⼀个整数n(1=n=1000),表⽰⽥忌和齐王都拥有n匹马。接下来⼀⾏是n个整数,表⽰⽥忌

的马的速度,下⼀⾏也是n个整数,表⽰齐王的马的速度。输⼊的最后以⼀个0表⽰结束。

关于输出:

对每组数据,输出⼀个整数,表⽰⽥忌⾄多可以赢多少银⼦,如果⽥忌赢不了,就输出⼀个负数,表⽰⽥忌最少要输多少银⼦。

例⼦输⼊:

3

928371

958774

2

2020

2020

2

2019

2218

0

例⼦输出:

200

0

0

packagetianjisaima;

importjava.util.Scanner;

importjava.util.List;

importjava.util.ArrayList;

importjava.util.Collections;

publicclassMain{

publicstaticvoidmain(Stringargs[]){

intn,m;

ListIntegerlist1=newArrayListInteger();

ListIntegerlist2=newArrayListInteger();

Scannerin=newScanner(System.in);

while(true){

n=in.nextInt();

if(n==0)break;

//输⼊数据

for(inti=0;in;++i)

{

list1.add(in.nextInt());

}

for(inti=0;in;++i)

{

list2.add(in.nextInt());

}

//处理数据

Collections.sort(list1);

Collections.sort(list2);

inti=0,j=0,x=n-1,y=n-1,count=0;

bleanbLast=true;

while(bLast)

{

//是否是最后⼀匹马

if(x==i)

bLast=false;

if(list1.get(x)list2.get(y))

{//如果⽥忌当前最好的马可以胜齐王最好的马,那么⽐⼀场

x--;

y--;

count+=200;

}

elseif(list1.get(i)list2.get(j))

{//如果⽥忌当前最差的马可以胜齐王最差的马,那么⽐⼀场

i++;

j++;

count+=200;

您可能关注的文档

文档评论(0)

151****5730 + 关注
实名认证
内容提供者

硕士毕业生

1亿VIP精品文档

相关文档