結果
問題 |
No.204 ゴールデン・ウィーク(2)
|
ユーザー |
![]() |
提出日時 | 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)