1. 程式人生 > >科大訊飛-筆試程式設計-殺手

科大訊飛-筆試程式設計-殺手

殺手

時間限制:C/C++語言 1000MS;其他語言 3000MS 記憶體限制:C/C++語言 65536KB;其他語言 589824KB

題目描述:

有n個殺手排成一行,每個殺手都有一個不同的編號(編號為1-n),在每個夜晚,殺手都會行動,如果某個殺手編號大於他右邊的殺手的編號,他就會殺死他右邊的殺手,殺手是的行動是瞬間的,因此一個人可能某一個夜晚既殺死了別人又被別人殺死,例如3,2,1這個順序,在第一個夜晚2會殺死1,同時3也會殺死2。

顯而易見,一段時間之後,就不會有人殺或被殺,平安夜也就到來了,請問在平安夜之前有多少個夜晚。

輸入

輸入第一行是一個整數n(1≤n≤100000),表示殺手的數量。

接下來一行有n個數,是一個1-n的全排列。

輸出

輸出包含一個整數,表示平安夜之前經歷了多少個夜晚。

樣例輸入

10
10 9 7 8 6 5 3 4 2 1

樣例輸出

2

Hint

補充樣例
輸入樣例2
6
1 2 3 4 5 6
輸出樣例2
0
樣例解釋:
樣例1中殺手的變化為[10 9 7 8 6 5 3 4 2 1]->[10 8 4]->[10],故答案為2。
x = input()
a = list(map(int,input().split()))
def shashou(a):
    b = [a[0]]
    for i in range(len(a)-1):
        if a[i] < a[i+1]:
            b.append(a[i+1])
    return b

n = 0
flag = True
while flag == True:
    if a != shashou(a):
        a = shashou(a)
        n = n+1
        flag = True
    else:
        flag = False
print(n)

程式設計能力很弱,如若有錯,請指正,共同學習,謝謝!