python-纸牌游戏(赛氪OJ)

[题目描述]
今天你与你的挚友玩一种纸牌游戏,每一回合两人各出一张牌,如果你的牌点数大小比对方小,则你不得分,否则你的得分为两张卡牌点数差值的绝对值。
由于你有读心术,你已经知道了对方接下来要出的 n 张牌,a1​,a2​,a3​...an​。你手上也有 n 张牌 b1​,b2​,b3​,...bn​,问你如何安排这 n 张牌使你得的分数最大?
输入格式:
输入共三行。
第一行一个数字 n,代表 n 张牌。
第二行n个数字 a1​,a2​,a3​...an​,代表你的挚友的出牌的点数大小。
第三行n个数字 b1​,b2​,b3​...bn​,代表你的牌的点数大小。
输出格式:
输出你得的最大分数。
样例输入
1
1
2
样例输出
1
数据范围:                                                                  对于 100% 的数据,保证 1≤n≤2×105,1≤ai​≤1018,1≤bi​≤1018。
来源/分类(难度系数:三星
贪心 枚举 


完整代码展示:
n=int(input())
list_1=list(map(int,input().split()))
list_2=list(map(int,input().split()))
list_1.sort(reverse=True)
list_2.sort(reverse=False)
sum=0
for i in range(0,len(list_1)):
      if list_1[i]>list_2[i]:
          sum+=0
     else:
            sum+=abs(list_2[i]-list_1[i])
print(sum)


代码解释:
n=int(input())
 list_1=list(map(int,input().split()))
 list_2=list(map(int,input().split()))
”,让用户输入回合数n。接着让用户依次输入挚友和自己各自持有的牌点数,并将其分别储存在列表list_1,list_2中。
list_1.sort(reverse=True)
 list_2.sort(reverse=False)
”,对list_1,list_2中的元素分别进行降序排序,升序排序。
sum=0
 for i in range(0,len(list_1)):
       if list_1[i]>list_2[i]:
           sum+=0
      else:
             sum+=abs(list_2[i]-list_1[i])
”,令sum=0,遍立列表list_1中的元素,判断list_1[i]是否大于list_2[i]。如果是,则令sum+=0,否则令sum+=list_2[i]-list_1[i]的绝对值。
print(sum) ”。打印sum的最终结果。


运行效果展示:

4312f94871914e10a04865e21a4210d5.jpg

393b8e099c854d6d8267f0c08dbc1ae6.jpg 

              (声明:以上内容均为原创)

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

闪云-微星

感谢大家的支持与鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值