結果
| 問題 |
No.204 ゴールデン・ウィーク(2)
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2015-05-08 20:13:53 |
| 言語 | PyPy2 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 88 ms / 1,000 ms |
| コード長 | 1,229 bytes |
| コンパイル時間 | 2,000 ms |
| コンパイル使用メモリ | 76,416 KB |
| 実行使用メモリ | 75,776 KB |
| 最終ジャッジ日時 | 2024-12-24 11:35:39 |
| 合計ジャッジ時間 | 7,049 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 46 |
ソースコード
# -*- coding: utf-8 -*-
D = int(raw_input())
A = [""] * 2
A[0] = raw_input()
A[1] = raw_input()
# 番兵
A[1] += "_"
Holi = []
Normal = []
current = "o"
count = 0
if A[0] == "x":
# 祝日のカウントが少なくならないように
Holi.append(0)
for i in xrange(2):
for c in A[i]:
if c != current:
if current == "x":
Normal.append(count)
else:
Holi.append(count)
current = c
count = 0
count += 1
mx = 0
# Holiが1個しかないのは番兵を入れたせいで休日なし
# ただし0個目が1以上の場合は1日目が休日のはずである
if len(Holi) == 1 or Holi[0] > 0:
mx = max(mx, Holi[0] + D)
else:
# 1日目が平日かつ 祝日がどこかに存在する
mx = max(mx, Holi[1] + D)
for i in xrange(len(Normal)):
# 平日の前側で有給休暇を取る場合
if i > 0 and Normal[i - 1] > D:
k = Holi[i] + D
mx = max(mx, k)
if Normal[i] <= D:
k = Holi[i] + Normal[i] + (Holi[i + 1] if i < len(Holi) - 1 else 0)
mx = max(mx, k)
else:
mx = max(mx, Holi[i] + D)
# 最後の祝日の連続
mx = max(mx, Holi[-1] + D)
print mx