ccf小球碰撞Python實現

2021-09-01 12:22:44 字數 1689 閱讀 7754

輸入的第一行包含三個整數n, l, t,用空格分隔,分別表示小球的個數、線段長度和你需要計算t秒之後小球的位置。

第二行包含n個整數a1, a2, …, an,用空格分隔,表示初始時刻n個小球的位置。

輸出一行包含n個整數,用空格分隔,第i個整數代表初始時刻位於ai的小球,在t秒之後的位置。

樣例輸入

3 10 5

4 6 8

樣例輸出

7 9 9

樣例說明

初始時,三個小球的位置分別為4, 6, 8。

def

main

(n, l, t, init_loc)

:"""

args:

n: 小球數量

l: 軌道長度

t: 時間

init_loc: 每個小球的初始位置,list

return:

每個小球最終的位置, list

"""v_loc =

for i in

range

(n):

v_loc[i]=[

1, init_loc[i]

]for j in

range

(t):

for key in

range

(n):

direction_last = v_loc[key][0

] loc_last = v_loc[key][1

] loc = loc_last + direction_last *

1if loc == l:

direction =-1

elif loc ==0:

direction =

1else

: direction = direction_last

v_loc[key]

=[direction, loc]

for i in

range

(n):

for j in

range

(i,n)

:if v_loc[i][1

]== v_loc[j][1

]:v_loc[i][0

]*=-1

v_loc[j][0

]*=-1

return

list

(map

(lambda x: x[1]

,v_loc.values())

)import time

n,l,t =

map(

int,

input()

.split())

init_loc =

[none]*n

init_loc[0]

,init_loc[1]

,init_loc[2]

=map

(int

,input()

.split())

start = time.time(

)print

(main(n, l, t,init_loc)

)end = time.time(

)print

(end-start)

ccf碰撞的小球python

輸入格式 輸入的第一行包含三個整數n,l,t,用空格分隔,分別表示小球的個數 線段長度和你需要計算t秒之後小球的位置。第二行包含n個整數a1,a2,an,用空格分隔,表示初始時刻n個小球的位置。輸出格式 輸出一行包含n個整數,用空格分隔,第i個整數代表初始時刻位於ai的小球,在t秒之後的位置。樣例輸...

CCF 碰撞的小球

201803 2 碰撞的小球 時間限制 1.0s 記憶體限制 256.0mb 問題描述 因為所有小球的初始位置都為偶數,而且線段的長度為偶數,可以證明,不會有三個小球同時相撞,小球到達線段端點以及小球之間的碰撞時刻均為整數。同時也可以證明兩個小球發生碰撞的位置一定是整數 但不一定是偶數 輸入格式 輸...

CCF 20180302小球碰撞

include using namespace std 1.首先進行排序 結構體陣列的排序 2.結果的輸出 不是根據change i id 的1 n的輸出,而是根據其下邊的1 n來輸出 struct nodechange 102 int main 結構體陣列排序 for int i 1 ifor i...