結果
| 問題 |
No.204 ゴールデン・ウィーク(2)
|
| コンテスト | |
| ユーザー |
lam6er
|
| 提出日時 | 2025-04-16 01:17:07 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,508 bytes |
| コンパイル時間 | 470 ms |
| コンパイル使用メモリ | 81,800 KB |
| 実行使用メモリ | 54,100 KB |
| 最終ジャッジ日時 | 2025-04-16 01:17:12 |
| 合計ジャッジ時間 | 3,513 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| 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)
lam6er