B - 超大型連休 Editorial /

Time Limit: 2 sec / Memory Limit: 64 MB

問題文

2011 年、AtCoder 国の高橋首相はある重大な決定を行った。
その決定とは...法改正である。国民の祝日に関する法律を変更し、休日を増やすことにした!!
国民の創造性を尊重するその決定が、霞が関を魔境へと変えたッ!

あなたは霞が関の国土交通省に勤務する職員であり、この法改正により上司から新たな任務を与えられた。
その任務とは、2012 年の「連休の最大日数」を計算することである。
連休の大きさを事前に計算することで国民の行動を予想し、高速道路の部分的な値下げを行い、経済を活性させるためだ。
したがって、あなたに失敗することは許されない。国民の行動を正確に予想できなくなるからだ。

以下に、「連休」の定義と諸注意を記す。
  1. AtCoder 国が使用する暦はグレゴリオ暦に従う。
  2. 「連休」とは、「休日」が連続して続くことである。
  3. 「土曜日」「日曜日」「祝日」「振替休日」が「休日」に相当する。
  4. 「祝日」が他の休日と同じ日に指定されていた場合、「振替休日」を必ず設置する。
  5. 「振替休日」は祝日の時系列順に決定していき、その祝日以降最も近い平日(休日を除いた日)となる。
  6. 201211 日は日曜日である。

入力

入力は以下の形式で標準入力から与えられる。
N
m_{1}/d_{1}
m_{2}/d_{2}
:
:
m_{n}/d_{n}
  • 1 行目には祝日の日数を表す整数 N が与えられ、 0≦N≦366 を満たす。
  • 2 行目から N+1 行目までの N 行で祝日の日付が与えられる。
    1. m_{i}i(1≦i≦366) 番目に与えられる祝日の月で、 1≦m_{i}≦12 を満たす。
    2. d_{i}i(1≦i≦366) 番目に与えられる祝日の日で、
      1. m_{i} = 2 のとき、 1≦d_{i}≦29 を満たす。
      2. m_{i} = (4, 6, 9, 11) のとき、 1≦d_{i}≦30 を満たす。
      3. m_{i} = (1, 3, 5, 7, 8, 10, 12) のとき、 1≦d_{i}≦31 を満たす。
    3. m_{i}d_{i} はともに整数である。
    4. m_{i}d_{i} は必ず/で区切られて与えられる。
    5. 祝日は時系列順に与えられるとは限らないことに注意せよ。ただし、同じ日付が複数与えられないことは保証されている。

出力

法改正後における 2012 年の連休の最大日数を出力せよ。
出力は標準出力におこない、末尾には改行をいれること。

入力例 1

1
1/9

出力例 1

3
  • 1/7(土),1/8(日),1/9(月)の 3 連休が最長です。

入力例 2

1
1/10

出力例 2

2
  • 1/10(火)が祝日となり、1/7(土),1/8(日)などの 2 連休が最長です。

入力例 3

1
1/7

出力例 3

3
  • 1/7は土曜日なので、以降で最も近い平日である1/9が振替休日になります。
  • よって、1/7(土)、1/8(日)、1/9(月)の3連休が最長です。

入力例 4

2
1/7
1/9

出力例 4

4
  • 1/7は土曜日なので振替休日を以降に設定したく、1/9が祝日なので1/10が振替休日になります。
  • よって、1/7(土)、1/8(日)、1/9(月)、1/10(火)の4連休が最長です。