#30733: 卡在NA 90%


fruitbear1980@gmail.com (大叔學程式)

學校 : 不指定學校
編號 : 148911
來源 : [219.85.168.77]
最後登入時間 :
2022-06-11 16:32:01
g277. 3. 幸運數字 -- 2021年9月APCS | From: [219.84.252.188] | 發表日期 : 2022-06-09 14:34

我就照題目的邏輯來寫

但就卡在90%的NA

是因為我的程式不夠優化造成的嗎?

看了其他的解法是運用建表和排序省掉很多找最小值和加總
附上我寫的NA 90%
 
while True:
    try:
               
        n = int(input())
        s = input()
        a = list(map(int, s.split()))
        for x in range(n):
            m = a.index(min(a))
            ls = a[0:m]
            rs = a[m+1 :]
            lsum = sum(ls)
            rsum = sum(rs)
            if lsum > rsum:
                a = a[0:m]
            elif lsum <= rsum:
                a = a[m + 1 :]
            if len(a) == 1:
                print(a[0])
                break
    except:
        break
 
#32375: Re: 卡在NA 90%


murray1122 (murray)

學校 : 不指定學校
編號 : 159940
來源 : [120.109.159.202]
最後登入時間 :
2024-10-29 16:21:40
g277. 3. 幸運數字 -- 2021年9月APCS | From: [111.83.152.177] | 發表日期 : 2022-10-04 19:59

我就照題目的邏輯來寫

但就卡在90%的NA

是因為我的程式不夠優化造成的嗎?

看了其他的解法是運用建表和排序省掉很多找最小值和加總
附上我寫的NA 90%
 
while True:
    try:
               
        n = int(input())
        s = input()
        a = list(map(int, s.split()))
        for x in range(n):
            m = a.index(min(a))
            ls = a[0:m]
            rs = a[m+1 :]
            lsum = sum(ls)
            rsum = sum(rs)
            if lsum > rsum:
                a = a[0:m]
            elif lsum <= rsum:
                a = a[m + 1 :]
            if len(a) == 1:
                print(a[0])
                break
    except:
        break

哈哈我跟你寫出來的幾乎一模一樣也90%,用py寫我也只想得到這個方法QAQ(可能我比較懶吧)

n=int(input())
a=list(map(int,input().split()))
while a[0]!=a[-1]:
    p=min(a)
    s=a.index(p)
    left=sum(a[0:s])
    right=sum(a[s+1:n])
    if left>right:
        a=a[0:s]
    else:
        a=a[s+1:n]
print(a[0])
 
ZeroJudge Forum