本文主要是介绍【python练习】4×100米接力跑,解决不了啊啊啊啊啊,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
4×100米接力跑
Description运动会径赛场4×100米接力跑的比赛异常激烈,有N个班级参加了比赛。根据规则,接力跑的第一名会得到N分,第二名会得到N-1分,以此类推,最后一名会得到1分。现在第i个班级已经获得了Ai分。求多少个班级经过这次接力跑后,分数有机会变成所有班级中最高的。Input
输入共N+1行。第一行包含一个正整数N,表示班级总数。接下来N行,每行包含一个整数Ai,表示第i个班级的原有分数。Output
输出一行。一个整数,表示多少个班级的分数有机会成为所有班级中最高的。Sample Input 1 样例1
3
9
11
10Sample Output 1样例1
3
Sample Input 2 样例1
5
15
14
15
12
14
Sample Output 2样例2
4
Hint对于100%的数据,3 <= N <= 3x10^5,1<=A i<=2x10^6
下面是我的两种方法,都不能通过检测,只有一个检测节点对的,其他提示“Time Limit Exceeded”
如何解决该问题????????
我的方法1
n=int(input())
alist=[]for i in range(n):alist.append(int(input()))alist.sort()
#print(alist)
ci=0for i in range(n):blist=[x+y for x,y in zip(alist[:i]+alist[i+1:],range(n-1,0,-1))]print(blist)print(alist[i]+n,max(blist))if alist[i]+n>=max(blist):ci+=1
我的方法2
n=int(input())
alist=[]for i in range(n):alist.append(int(input()))alist.sort()
#print(alist)
ci=0blist=[]
for i in range(n):blist=list(map(lambda x,y:x+y,alist[:i]+alist[i+1:],range(n-1,0,-1)))#print(blist)if alist[i]+n>=max(blist):ci+=1
print(ci)
这篇关于【python练习】4×100米接力跑,解决不了啊啊啊啊啊的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!