#解題思路
#[[3, 4], [7, 5], [3, 9]]
#解題思路
# 1)讓他能成功輸入 2)放入陣列 且陣列為二維 3)在每個2D中找出較大的值 求和的Max 4)根據被選到的陣列順序 回傳可整除Max的值#[[3, 4], [7, 5], [3, 9]]
完整程式碼
N,M=map(int,input().split())
list1=[]
list2=[]
list3=[]
for i in range(N):
arr=list(map(int,input().split()))
list1.append(arr)
list2.append(max(arr))
Max1=sum(list2)
for j in list2:
if Max1%j==0:
list3.append(j)
print(Max1)
print("-1") if list3==[] else print(*list3)
#解題思路
# 1)讓他能成功輸入 2)放入陣列 且陣列為二維 3)在每個2D中找出較大的值 求和的Max 4)根據被選到的陣列順序 回傳可整除Max的值#[[3, 4], [7, 5], [3, 9]]
完整程式碼
N,M=map(int,input().split())
list1=[] 用不到
list2=[]
list3=[]
for i in range(N):
arr=list(map(int,input().split()))
list1.append(arr) 用不到
list2.append(max(arr))
Max1=sum(list2)
for j in list2:
if Max1%j==0:
list3.append(j)
print(Max1)
print("-1") if list3==[] else print(*list3)
承上述,更進階寫法可採用短路求值運算以及串列生成式達成 list3 = [j for j in list2 if Max1%j==0] or '-1'
應該這樣寫會比較正確
list3 = [j for j in list2 if Max1%j==0] or ('-1',)
我的寫法:
我的寫法:
from sys import stdinnext(stdin)li = [max(map(int, line.split())) for line in stdin]ans = sum(li)print(ans)print(*[n for n in li if ans%n==0] or ('-1',))
謝謝受教了 感謝您的修正 最近在zerojudge上解題 很常會遇到超時的困擾 一直在思考要如何精簡程式