本文主要是介绍第十五届浙江大学宁波理工学院程序设计大赛 - D Campaign,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
全部输入:
4
50
1 1
1 1
1 1
1 1
1 1
1 1
1 1
50
1 1
20 30
20 30
20 30
1 1
20 30
20 30
70
19 19
10 10
10 10
10 10
10 10
10 10
1 1
2
1 1
3 3
3 3
3 3
3 3
3 3
3 3
我的错解:(只通过了50%的测试用例
思路是算出可以占到的L有多少空间时, 同步计算R的空间, 再判断是否lose
各用一个int变量记录,如果能占到空间的R小于总数,就lose
如果能占到的L小于总数就直接lose
正解想好了补充
for _ in range(int(input())):n = int(input())lst = []for _ in range(7):lst.append(list(map(int, input().split())))lst = sorted(lst, key = lambda x : x[0])accept = 0available_R = 0key = 0sum_L = 0for i in lst:sum_L += i[0]for idx, ls in enumerate(lst):if accept <= n:accept += ls[0]available_R += ls[1]else:key = idx - 1available_R -= lst[idx-1][1]breakif available_R < n:print(0)elif accept == sum_L:print(7)else:print(key)
这篇关于第十五届浙江大学宁波理工学院程序设计大赛 - D Campaign的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!