#40849: 學程式沒多久 用自己的方法寫出來了 但速度明顯慢很多 請大佬指教


chinostibi@gmail.com (stop simping)

學校 : 不指定學校
編號 : 264813
來源 : [116.241.165.233]
最後登入時間 :
2024-06-15 23:05:00

這邊是py程式碼~

character = int(input())
temp = float("-inf")
secondtemp = float("-inf")
tempatk = float("-inf")
tempdef = float("-inf")
secondatk = float("-inf")
seconddef = float("-inf")
for i in range(character):
    attack,defense = [int(i) for i in input().split()]
    if attack**2 + defense**2 > temp:
        secondtemp = temp
        secondatk = tempatk
        seconddef = tempdef

        temp = attack**2 + defense**2
        tempatk = attack
        tempdef = defense
    if attack**2 + defense**2 > secondtemp and attack**2 + defense**2 < temp:
        secondtemp = attack**2 + defense**2
        secondatk = attack
        seconddef = defense
print(secondatk,seconddef)
#40850: Re: 學程式沒多久 用自己的方法寫出來了 但速度明顯慢很多 請大佬指教


asnewchien@gmail.com (david)

學校 : 南投縣立旭光高級中學
編號 : 68108
來源 : [114.42.176.221]
最後登入時間 :
2025-10-04 22:52:03

還好啦,
有些人是先塞到陣列排序。
遇到測資比較大時,你這也是個好方法。
你可以 _t = a**2 + d**2  避免重複計算。

 

#40855: Re: 學程式沒多久 用自己的方法寫出來了 但速度明顯慢很多 請大佬指教


chinostibi@gmail.com (stop simping)

學校 : 不指定學校
編號 : 264813
來源 : [116.241.165.233]
最後登入時間 :
2024-06-15 23:05:00

還好啦,
有些人是先塞到陣列排序。
遇到測資比較大時,你這也是個好方法。
你可以 _t = a**2 + d**2  避免重複計算。

 


對耶 寫的時候怎麼沒有想到 這樣看起來清爽很多 謝謝