結果
問題 |
No.204 ゴールデン・ウィーク(2)
|
ユーザー |
![]() |
提出日時 | 2025-04-16 01:15:12 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,508 bytes |
コンパイル時間 | 201 ms |
コンパイル使用メモリ | 81,932 KB |
実行使用メモリ | 54,216 KB |
最終ジャッジ日時 | 2025-04-16 01:16:10 |
合計ジャッジ時間 | 3,053 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 24 WA * 22 |
ソースコード
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)