結果
| 問題 | No.204 ゴールデン・ウィーク(2) |
| コンテスト | |
| ユーザー |
gew1fw
|
| 提出日時 | 2025-06-12 21:37:56 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,787 bytes |
| コンパイル時間 | 231 ms |
| コンパイル使用メモリ | 81,664 KB |
| 実行使用メモリ | 52,352 KB |
| 最終ジャッジ日時 | 2025-06-12 21:41:23 |
| 合計ジャッジ時間 | 3,308 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 25 WA * 21 |
ソースコード
D = int(input())
C1 = input().strip()
C2 = input().strip()
S = C1 + C2
# Precompute leading_o
leading_o = 0
for c in S:
if c == 'o':
leading_o += 1
else:
break
# Precompute trailing_o
trailing_o = 0
for c in reversed(S):
if c == 'o':
trailing_o += 1
else:
break
# Precompute left_o: the max 'o's ending at each position
left_o = [0] * 14
if S[0] == 'o':
left_o[0] = 1
for i in range(1, 14):
if S[i] == 'o':
left_o[i] = left_o[i-1] + 1
else:
left_o[i] = 0
# Precompute right_o: the max 'o's starting at each position
right_o = [0] * 14
if S[13] == 'o':
right_o[13] = 1
for i in range(12, -1, -1):
if S[i] == 'o':
right_o[i] = right_o[i+1] + 1
else:
right_o[i] = 0
max_o = max(left_o)
if D == 0:
print(max_o)
else:
# Case 1: converted block before S
case1 = D
if S[0] == 'o':
case1 += leading_o
# Case 2: converted block after S
case2 = D
if S[-1] == 'o':
case2 += trailing_o
# Case 3: converted block within S
case3_max = 0
for i in range(14 - D + 1):
# Check if S[i..i+D-1] are all 'x's
all_x = True
for j in range(i, i + D):
if j >= 14:
all_x = False
break
if S[j] != 'x':
all_x = False
break
if all_x:
# Calculate pre_o and post_o
pre_o = 0
if i > 0:
pre_o = left_o[i-1]
post_o = 0
if i + D < 14:
post_o = right_o[i + D]
total = pre_o + D + post_o
if total > case3_max:
case3_max = total
overall_max = max(max_o, case1, case2, case3_max)
print(overall_max)
gew1fw