結果

問題 No.204 ゴールデン・ウィーク(2)
ユーザー lam6er
提出日時 2025-04-16 16:51:47
言語 PyPy3
(7.3.15)
結果
WA  
実行時間 -
コード長 1,508 bytes
コンパイル時間 411 ms
コンパイル使用メモリ 81,832 KB
実行使用メモリ 53,844 KB
最終ジャッジ日時 2025-04-16 16:52:39
合計ジャッジ時間 3,276 ms
ジャッジサーバーID
(参考情報)
judge5 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 24 WA * 22
権限があれば一括ダウンロードができます

ソースコード

diff #

D = int(input())
C = input().strip() + input().strip()

# Generate intervals
intervals = []
if not C:
    intervals = []
else:
    current_char = C[0]
    count = 1
    for c in C[1:]:
        if c == current_char:
            count += 1
        else:
            intervals.append((current_char, count))
            current_char = c
            count = 1
    intervals.append((current_char, count))

max_original = 0
for t, l in intervals:
    if t == 'o':
        if l > max_original:
            max_original = l

if D == 0:
    print(max_original)
    exit()

max_val = max_original

# Case a: apply before the calendar
first_type, first_length = intervals[0] if intervals else ('x', 0)
if first_type == 'o':
    candidate = D + first_length
else:
    candidate = D
if candidate > max_val:
    max_val = candidate

# Case b: apply after the calendar
last_type, last_length = intervals[-1] if intervals else ('x', 0)
if last_type == 'o':
    candidate = last_length + D
else:
    candidate = D
if candidate > max_val:
    max_val = candidate

# Case c: apply to x intervals in the calendar
for i in range(len(intervals)):
    t, l = intervals[i]
    if t != 'x':
        continue
    prev_o = 0
    next_o = 0
    if i > 0 and intervals[i-1][0] == 'o':
        prev_o = intervals[i-1][1]
    if i < len(intervals)-1 and intervals[i+1][0] == 'o':
        next_o = intervals[i+1][1]
    k = min(D, l)
    candidate = prev_o + k + next_o
    if candidate > max_val:
        max_val = candidate

print(max_val)
0