#44233: 求救,不知為何是82%,請問還有哪種情況沒有想到


nick0212 (nick)

學校 : 國立臺南第一高級中學
編號 : 285940
來源 : [118.231.176.58]
最後登入時間 :
2025-07-03 15:46:37

n=int(input())
s=[int(x) for x in input().split()]
temp=0
index=-1
fn=0
flag=0
for i in s:
    index+=1
    if i==1:
        for x in s[index:]:
            index+=1
            if x==0:
                if flag==1:       #for 9後面是0的情況,直接略過
                    flag=0
                    continue
                temp+=1
            elif(x==9 and s[index-2]==0 ):
                temp-=1
                if index!=len(s):        #for re
                    if s[index]==0:
                        s[index]=2      # 把9後面0的數子改成2,這樣就不會進到0909就不會多扣
                        flag+=1        
            elif(x==1):
                fn+=temp
                temp=0
        break
print(fn)
           
#44234: Re: 求救,不知為何是82%,請問還有哪種情況沒有想到


hansjiang1017@gmail.com (可以出題了!!!!!!!!!!!!!!!)

學校 : 不指定學校
編號 : 278037
來源 : [111.242.104.111]
最後登入時間 :
2025-08-06 18:37:22

n = int(input())
g = list(map(int, input().split()))
found = False
j = 0
if g.count(1) < 2:
    print(0)
else:
    while not found:
        if g[j] == 1:
            g[0:j] = [1 for i in range(j)]
            found = True
        j+=1
    found = False
    j = n-1
    while not found:
        if g[j] == 1:
            g[j:n] = [1 for i in range(n-j)]
            found = True
        j-=1
    for i in range(n):
        if g[i] == 9:
            if g[i+1] != 9:
                if g != 0:
                    g[i-1] = 1
                if g != n:
                    g[i+1] = 1
            else:
                if g != 0:
                    g[i-1] = 1
    print(g.count(0))'
我這樣有AC, 少設想欄杆小於2的情況和兩隻害蟲連在一起的情況
#44235: Re: 求救,不知為何是82%,請問還有哪種情況沒有想到


nick0212 (nick)

學校 : 國立臺南第一高級中學
編號 : 285940
來源 : [118.231.176.58]
最後登入時間 :
2025-07-03 15:46:37

n = int(input())
g = list(map(int, input().split()))
found = False
j = 0
if g.count(1) < 2:
    print(0)
else:
    while not found:
        if g[j] == 1:
            g[0:j] = [1 for i in range(j)]
            found = True
        j+=1
    found = False
    j = n-1
    while not found:
        if g[j] == 1:
            g[j:n] = [1 for i in range(n-j)]
            found = True
        j-=1
    for i in range(n):
        if g[i] == 9:
            if g[i+1] != 9:
                if g != 0:
                    g[i-1] = 1
                if g != n:
                    g[i+1] = 1
            else:
                if g != 0:
                    g[i-1] = 1
    print(g.count(0))'
我這樣有AC, 少設想欄杆小於2的情況和兩隻害蟲連在一起的情況
n=int(input())
s=[int(x) for x in input().split()]
temp=0
index=-1
fn=0
flag=0
for i in s:
    index+=1
    if i==1:
        for x in s[index:]:
            index+=1
            if x==0:
                if flag==1:       #for 9後面是0的情況,直接略過
                    flag=0
                    continue
                temp+=1
            elif(x==9 and s[index-2]==0 ):
                temp-=1
                if index!=len(s):        #for re
                    if s[index]==0:    
                        s[index]=2
                        flag+=1  
            elif(x==9 and s[index-2]==9):
                if index!=len(s):        #for re
                    if s[index]==0:
                        s[index]=2
                        flag+=1
            elif(x==1):
                fn+=temp
                temp=0
        break
print(fn)
           

感謝電神,我變成88%了,我確實沒考慮到99的情況,但欄杆小於2的情況我應該是可以的,因為我是讓程式碰到1才加回去,因此沒碰到1的話,應不會有加回去的情況。
想請問還有哪裡可能會是沒有考慮到的情況,感謝電神

#44236: Re: 求救,不知為何是82%,請問還有哪種情況沒有想到


sam851015@gmail.com (多挖鼻孔有益身心健康)

學校 : 臺中市立惠文高級中學
編號 : 277705
來源 : [123.192.228.253]
最後登入時間 :
2025-09-21 22:24:46

試試看讓你的程式跑這筆測資

4
1 9 0 1


根據題意,9 的旁邊不能種植,故這裡應輸出 0

你的程式會輸出 1

#44317: Re: 求救,不知為何是82%,請問還有哪種情況沒有想到


nick0212 (nick)

學校 : 國立臺南第一高級中學
編號 : 285940
來源 : [118.231.176.58]
最後登入時間 :
2025-07-03 15:46:37

試試看讓你的程式跑這筆測資

4
1 9 0 1


根據題意,9 的旁邊不能種植,故這裡應輸出 0

你的程式會輸出 1

感謝大神

AC了