結果
問題 | 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