解题思路: 贪心的选择使得获胜方人数与另外两方人数和的差最大,因此优先选择差最大的事件
注意事项: 获胜仅有三种情况,要么x要么y要么z
参考代码:
n = int(input()) x = list(map(int,input().split())) y = list(map(int,input().split())) z = list(map(int,input().split())) win_x = sorted([x[i]-(y[i]+z[i]) for i in range(n)],reverse = True) win_y = sorted([y[i]-(x[i]+z[i]) for i in range(n)],reverse = True) win_z = sorted([z[i]-(x[i]+y[i]) for i in range(n)],reverse = True) sum_x,sum_y,sum_z = 0, 0, 0 num_x,num_y,num_z = 0, 0, 0 ans = 0 for i in range(n): sum_x += win_x[i] sum_y += win_y[i] sum_z += win_z[i] num_x = num_y = num_z = i+1 if sum_x > 0: ans = max(ans,num_x) if sum_y > 0: ans = max(ans,num_y) if sum_z > 0: ans = max(ans,num_z) if sum_x<=0 and sum_y<=0 and sum_z<=0: break print(ans if ans else -1)
0.0分
6 人评分
汽水瓶 (C语言代码)浏览:705 |
C语言程序设计教程(第三版)课后习题10.5 (C语言代码)浏览:1450 |
C语言程序设计教程(第三版)课后习题10.5 (C语言代码)浏览:552 |
成绩转换 (C语言代码)浏览:1008 |
C语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:524 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:476 |
简单的a+b (C语言代码)浏览:528 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:678 |
C语言训练-亲密数 (C语言代码)浏览:682 |
2004年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:600 |