#205. 连休
连休
题面翻译
2011年,AtCoder国家的高桥君作出了重大的决定。 决定变更国民节日相关法律,增加假日! 【无意义内容被和谐了】 你的任务是计算2012年“连休的最大天数”。 以下是“连休”的定义:
AtCoder国家使用的日历遵循阳历。 “连休”是指连续的休息日 星期六、星期日、节日、调休假日相当于“休息日” 如果“节日”被指定为与其他休息日相同的日子,则必须设置“调休假日” “调休假日”按照节日的时间顺序决定,成为该节日以来最近的平日(除休息日以外的日子) 已知2012年1月11日是星期日
题目描述
年、 国の高橋首相はある重大な決定を行った。 その決定とは...法改正である。国民の祝日に関する法律を変更し、休日を増やすことにした!! 国民の創造性を尊重するその決定が、霞が関を魔境へと変えたッ!
あなたは霞が関の国土交通省に勤務する職員であり、この法改正により上司から新たな任務を与えられた。 その任務とは、 年の「連休の最大日数」を計算することである。 連休の大きさを事前に計算することで国民の行動を予想し、高速道路の部分的な値下げを行い、経済を活性させるためだ。 したがって、あなたに失敗することは許されない。国民の行動を正確に予想できなくなるからだ。
以下に、「連休」の定義と諸注意を記す。
- 国が使用する暦はグレゴリオ暦に従う。
- 「連休」とは、「休日」が連続して続くことである。
- 「土曜日」「日曜日」「祝日」「振替休日」が「休日」に相当する。
- 「祝日」が他の休日と同じ日に指定されていた場合、「振替休日」を必ず設置する。
- 「振替休日」は祝日の時系列順に決定していき、その祝日以降最も近い平日(休日を除いた日)となる。
- 年 月 日は日曜日である。
入力は以下の形式で標準入力から与えられる。 > / / /
- 行目には祝日の日数を表す整数 が与えられ、 を満たす。
- 行目から 行目までの 行で祝日の日付が与えられる。
- は 番目に与えられる祝日の月で、 を満たす。
- は 番目に与えられる祝日の日で、
- のとき、 を満たす。
- のとき、 を満たす。
- のとき、 を満たす。
- と はともに整数である。
- と は必ず
/
で区切られて与えられる。 - 祝日は時系列順に与えられるとは限らないことに注意せよ。ただし、同じ日付が複数与えられないことは保証されている。
法改正後における 年の連休の最大日数を出力せよ。 出力は標準出力におこない、末尾には改行をいれること。
1
1/9
3
- 1/7(土),1/8(日),1/9(月)の 連休が最長です。
1
1/10
2
- 1/10(火)が祝日となり、1/7(土),1/8(日)などの 連休が最長です。
1
1/7
3
- 1/7は土曜日なので、以降で最も近い平日である1/9が振替休日になります。
- よって、1/7(土)、1/8(日)、1/9(月)の3連休が最長です。
2
1/7
1/9
4
- 1/7は土曜日なので振替休日を以降に設定したく、1/9が祝日なので1/10が振替休日になります。
- よって、1/7(土)、1/8(日)、1/9(月)、1/10(火)の4連休が最長です。