csp 碰撞的小球 python
运行错误了n次,不知道为什么,然后百度找了一下答案,提交没问题 慢慢探索终于发现了问题所在。
n,l,t=map(int,input().split(" ")) a=list(map(int,input().split())) #原来这里写错了 在括号里面加了" " 也就是split(" ") 我也不知道为啥不对,大概跟前面的list有关吧 temp=[i for i in a] a.sort() d1=l-a[-1] mark=[1 for i in range(n+1)] temp.insert(0,0) if(t<=d1): for i in range(1,n+1): temp[i]=temp[i]+t else: num=[0 for i in range(l+1)] for i in a: num[i]=1 for t2 in range(t): for q in range(1,n+1): num[temp[q]]-=1 temp[q]=temp[q]+mark[q] num[temp[q]]+=1 for k in range(1,l): if(num[k]==2): for i in range(1,n+1): if(temp[i]==k): mark[i]=-mark[i] for i in range(1,n+1): if(temp[i]>=l): mark[i]=-1 if(temp[i]<=0): mark[i]=1 for i in range(1,n+1): print(temp[i],end=" ")
下面是简化代码,也是一直运行错误之后参考的代码
n,l,t=map(int,input().split(" ")) a=list(map(int,input().split()))###这里很重要 temp=[i for i in a] mark=[1 for i in range(n)] for t2 in range(t): for q in range(n): if(temp[q]<=0 or temp[q]>=l): mark[q]=-mark[q] for i in range(q+1,n): if(temp[i]==temp[q]): mark[i]=-mark[i] mark[q]=-mark[q] for i in range(n): temp[i]=temp[i]+mark[i] for i in range(n): print(temp[i],end=" ")
如果看到这篇,并且知道为啥那样运行错误,欢迎告知!