#27499: Python解題


super94kyle@gmail.com (黑亡子)

學校 : 不指定學校
編號 : 143417
來源 : [122.116.74.71]
最後登入時間 :
2022-01-04 23:07:17
a350. 3. 緞帶的購買問題 -- 100學年度北基區資訊學科能力競賽 | From: [42.73.136.116] | 發表日期 : 2021-10-10 11:38

#8 16 24 32 40 48 56 64 80
import sys
d={0:1 , 1:2 , 2:3 , 3:4 , 4:5 , 5:6 , 6:7 , 7:8 , 8:10}
l = int(input())
l = (l//8)
fl = list(map(int,input().split()))
for k in range(8,-1,-1):
  if fl[k] != 0:
    if d[k] > l:
      print("NO SOLUTION!!")
      sys.exit(0)
m=0
for i in range(9):
  m = m + fl[i] * d[i]
print(m//l)
 
#35513: Re: Python解題


kaeteyaruyo@gmail.com (kinoe_T)

學校 : 國立成功大學
編號 : 81196
來源 : [140.113.136.221]
最後登入時間 :
2024-01-31 16:39:28
a350. 3. 緞帶的購買問題 -- 100學年度北基區資訊學科能力競賽 | From: [163.32.57.178] | 發表日期 : 2023-06-05 16:39

#8 16 24 32 40 48 56 64 80
import sys
d={0:1 , 1:2 , 2:3 , 3:4 , 4:5 , 5:6 , 6:7 , 7:8 , 8:10}
l = int(input())
l = (l//8)
fl = list(map(int,input().split()))
for k in range(8,-1,-1):
  if fl[k] != 0:
    if d[k] > l:
      print("NO SOLUTION!!")
      sys.exit(0)
m=0
for i in range(9):
  m = m + fl[i] * d[i]
print(m//l)


此題的測資不夠嚴謹。我照這個寫法交上去確實是 AC 了,但這個解法應該算出來的不是正確答案。因為題目中有描述「但緞帶無法拼接,所以若所剩之緞帶長度不足以製作花飾時只好捨棄。」而這個方法是假設緞帶可以拼接算出來的答案,因此在以下測資的時候會發生錯誤:

48
0 0 0 3 0 0 0 0 0

答案應當是 3 ,但這個方法會算出 2。

 
ZeroJudge Forum