結果
| 問題 | No.2924 <===Super Spaceship String===> | 
| コンテスト | |
| ユーザー |  yamasaKit_ | 
| 提出日時 | 2025-02-01 00:15:36 | 
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 695 ms / 2,000 ms | 
| コード長 | 1,215 bytes | 
| コンパイル時間 | 293 ms | 
| コンパイル使用メモリ | 12,160 KB | 
| 実行使用メモリ | 73,372 KB | 
| 最終ジャッジ日時 | 2025-02-01 00:15:40 | 
| 合計ジャッジ時間 | 4,104 ms | 
| ジャッジサーバーID (参考情報) | judge4 / judge5 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 2 | 
| other | AC * 12 | 
ソースコード
from collections import *
from itertools import *
from functools import cache, partial
from pprint import pprint
import sys
from typing import Any, Final
try:
    from icecream import ic
except ImportError:  # Graceful fallback if IceCream isn't installed.
    ic = lambda *a: None if not a else (a[0] if len(a) == 1 else a)  # noqa
debug = partial(print, file=sys.stderr)
dpprint = partial(pprint, stream=sys.stderr)
sys.setrecursionlimit(10**6)
MOD = 998244353
S_ = input()
N = len(S_)
S = []
cnt = 0
for s in S_:
    if s == "<" or s == ">":
        if cnt > 0:
            S.append(("=", cnt))
            cnt = 0
        S.append((s, 1))
    else:
        cnt += 1
if cnt > 0:
    S.append(("=", cnt))
# ic(S)
ans = N
stack = []
for char, cnt in S:
    if char in ["<", ">"]:
        stack.append((char, cnt))
    elif stack and stack[-1][0] == "=":
        _, cnt2 = stack.pop()
        stack.append(("=", cnt + cnt2))
    else:
        stack.append(("=", cnt))
    while (
        len(stack) >= 3
        and stack[-1][0] == ">"
        and stack[-2][0] == "="
        and stack[-3][0] == "<"
    ):
        ans -= 2 + stack[-2][1]
        stack.pop()
        stack.pop()
        stack.pop()
print(ans)
            
            
            
        