結果

問題 No.2036 Max Middle
ユーザー FromBooskaFromBooska
提出日時 2023-04-18 14:16:14
言語 PyPy3
(7.3.15)
結果
TLE  
実行時間 -
コード長 883 bytes
コンパイル時間 231 ms
コンパイル使用メモリ 82,176 KB
実行使用メモリ 107,520 KB
最終ジャッジ日時 2024-04-21 14:11:38
合計ジャッジ時間 4,993 ms
ジャッジサーバーID
(参考情報)
judge2 / judge3
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 40 ms
58,880 KB
testcase_01 AC 41 ms
53,760 KB
testcase_02 AC 41 ms
53,504 KB
testcase_03 AC 40 ms
53,504 KB
testcase_04 AC 46 ms
53,120 KB
testcase_05 AC 41 ms
53,376 KB
testcase_06 AC 40 ms
53,760 KB
testcase_07 AC 41 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