AtCoder Beginner Contest 10 B. 超大型連休

※このエントリは競プロで圧倒的成長 Advent Calendar 2015の16日目のエントリです.

問題

問題概要

  • AtCoder国の2012年の祝日が与えられるので最大の連休の数を求める

解法

  • 長さ366の配列で2012年のi-1日目が休日がどうかを管理する
  • 1日が日曜のためi%7==0は日曜,i%7==6は土曜
  • m月d日を配列のindexに変換する
    m-1月までの日の和がわかれば用意に変換できる (計算が容易なので手計算した)
  • そのindex以降の最初の平日を休日にする