結果

問題 No.2036 Max Middle
ユーザー FromBooskaFromBooska
提出日時 2023-04-18 14:16:14
言語 PyPy3
(7.3.15)
結果
TLE  
実行時間 -
コード長 883 bytes
コンパイル時間 749 ms
コンパイル使用メモリ 82,176 KB
実行使用メモリ 106,880 KB
最終ジャッジ日時 2024-10-13 12:53:40
合計ジャッジ時間 5,012 ms
ジャッジサーバーID
(参考情報)
judge3 / judge5
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 46 ms
59,008 KB
testcase_01 AC 43 ms
53,632 KB
testcase_02 AC 42 ms
53,504 KB
testcase_03 AC 42 ms
53,888 KB
testcase_04 AC 42 ms
53,632 KB
testcase_05 AC 43 ms
53,376 KB
testcase_06 AC 43 ms
53,504 KB
testcase_07 AC 42 ms
53,632 KB
testcase_08 TLE -
testcase_09 -- -
testcase_10 -- -
testcase_11 -- -
testcase_12 -- -
testcase_13 -- -
testcase_14 -- -
testcase_15 -- -
testcase_16 -- -
testcase_17 -- -
testcase_18 -- -
testcase_19 -- -
testcase_20 -- -
権限があれば一括ダウンロードができます

ソースコード

diff #

# 前回の手法で可能ではあるが思いつき不可能なので公式解説の方法に変える
# N項間に不等号を書く、N-1個
# その不等号が<>のときは、><に変わる、それが何回可能か
# スタックで実装してみよう

N = int(input())
A = list(map(int, input().split()))
signs = []
for i in range(1, N):
    if A[i-1] < A[i]:
        signs.append('<')
    else:
        signs.append('>')
    # equalは制約でない
    
from collections import deque
que1 = deque()
que2 = deque(signs)
count = 0

while que2:
    new = que2.popleft()
    if len(que1) == 0:
        que1.append(new)
    else:
        if que1[-1] == '<' and new == '>':
            que1.pop()
            que2.appendleft('<')
            que2.appendleft('>')
            count += 1
        else:
            que1.append(new)
    #print(que1, que2, count)
print(count)


0