結果
| 問題 | No.1439 Let's Compare!!!! |
| コンテスト | |
| ユーザー |
学ぶマン
|
| 提出日時 | 2026-01-03 17:59:32 |
| 言語 | PyPy3 (7.3.17) |
| 結果 |
AC
|
| 実行時間 | 392 ms / 2,000 ms |
| コード長 | 1,225 bytes |
| 記録 | |
| コンパイル時間 | 427 ms |
| コンパイル使用メモリ | 82,508 KB |
| 実行使用メモリ | 132,876 KB |
| 最終ジャッジ日時 | 2026-01-03 17:59:38 |
| 合計ジャッジ時間 | 6,008 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 17 |
ソースコード
import sys, math
sys.set_int_max_str_digits(0)
from heapq import heappop, heappush
N = int(input())
S = list(input())
T = list(input())
S = list(map(lambda x: int(x), S))
T = list(map(lambda x: int(x), T))
# 事前準備
# 異なる桁のみqueに入れる
que = []
for i in range(N):
s, t = S[i], T[i]
if s != t:
heappush(que, i)
ansl = []
Q = int(input())
for _ in range(Q):
c, x, y = input().split()
x = int(x) - 1
y = int(y)
# 変更前の時点で同じ桁だったか?
flag = bool(S[x] == T[x])
if c == 'S':
S[x] = y
else:
T[x] = y
# 同じ → 異なる桁になった場合は que に追加
if flag and (S[x] != T[x]):
heappush(que, x)
# 回答
# 異なる桁の中で一番前のもので判断
# que[0] が現状と合わない可能性を考慮する
while que:
# 異なっているままか?
keta = que[0]
if S[keta] == T[keta]: # 同じだったら捨てる
heappop(que)
elif S[keta] > T[keta]:
ansl.append('>')
break
else:
ansl.append('<')
break
else:
ansl.append('=')
print(*ansl, sep='\n')
学ぶマン