for _ in range(1) 只是我不知道要怎麼結束整個程式碼而已
後來知道可以用sys.exit()但我懶得改了 :)
我的想法是用window來三個三個看,
若window [ 0 ] 與 [ 1 ] 相同就加前一個資料直到不相同或是碰到邊界,
window [ 1 ] 與 [ 2 ] 同理;
每次只加window [ 0 ] 所對應的index (就是 i ) 進到結果 (idx) 中,避免重複。
如果len(idx)==0:
輸出 ("0 0")並結束程式;
否則:
用迴圈輸出日期,以空白隔開,
如果遇到連續的,則使用while 讓 i 一直+1,
直到非連續數字或是碰到邊界,最後再輸出最後這天的日期,以空白隔開
再輸出日期所對應之數值。
from sys import stdin
for _ in range(1):
days=list(map(int,stdin.readline().split()))
window=[]
window=[0,days[0],days[1]]
idx=[]
for i in range(len(days)-2):
window.append(days[i+2])
window.pop(0)
if window[1]>window[0] and window[1]>window[2]:
idx.append(i+1)
w=window[:]
if window[0]==window[1]:
w=w[:]
a=i
while(w[0]==w[1]):
if a==0:
break
else:
w.insert(0,days[a-1])
a-=1
if w[0]<w[1] and w[-1]<w[-2]:
idx.append(i+1)
if window[2]==window[1]:
w=w[:]
a=i
while(w[-1]==w[-2]):
if a==len(days)-3:
break
else:
w.append(days[a+3])
a+=1
#print("2,w =",w)
if w[0]<w[1] and w[-1]<w[-2]:
idx.append(i+1)
if len(idx)==0:
print("0 0")
break
i=0
while i<=len(idx)-1:
p=0
print(idx[i]+1,end=" ")
if i<len(idx)-1:
while idx[i+1]==idx[i]+1:
p=1
i+=1
if i==len(idx)-1:
break
if p:
print(idx[i]+1,end=" ")
print(days[idx[i]])
i+=1