結果
問題 |
No.2924 <===Super Spaceship String===>
|
ユーザー |
![]() |
提出日時 | 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)