C - Calendar 2
Editorial
/
14 10 (2020/8/08 訂正) となる。


Time Limit: 1 sec / Memory Limit: 256 MB
配点:500 点
そのとき、マス (i, j) には整数 7i + j - 8 が書かれている。つまりカレンダーは次のようになっている。
すぬけ君は、塗り絵が大好きなので、このカレンダーを使って次のような遊びをした。
各マスは最初白く塗られており、すぬけ君は整数 m を決め、次のような操作を q 回行った。
ただし、白いマスに対して上下左右の4方向に白いマスがあれば、このマスは同じ連結な部分とみなすことにする。
問題文
n × 7 のカレンダーがある。上から i 番目のマス、左から j 番目のマスを (i, j) で表す。
すぬけ君は、塗り絵が大好きなので、このカレンダーを使って次のような遊びをした。
各マスは最初白く塗られており、すぬけ君は整数 m を決め、次のような操作を q 回行った。
- i 回目の操作では、m で割った余りが a_i であるマスを黒く塗る。
ただし、白いマスに対して上下左右の4方向に白いマスがあれば、このマスは同じ連結な部分とみなすことにする。
入力
入力は、次の形式で与えられる。n m q a_1 a_2 ... a_q
出力
連結な部分の個数を1行に出力しなさい。制約
- n ≦ 10^{12}
- 7n は m で割り切れる。
- 1 ≦ q ≦ m ≦ 10^5
- 0 ≦ a_1 < a_2 < ... < a_q < m
得点
小課題1 [100 点]- n ≦ 100000.
- m は 7 の倍数
- a_{i + 1} - a_i = 1.
- m は 7 の倍数
- 追加の制約はない。
入力例1
7 7 3 1 3 5
出力例1
4次のようなカレンダーになる。よって、連結な部分の個数は 4 となる。

入力例2
10 14 8 5 6 7 8 9 10 11 12
出力例2
10次のようなカレンダーになる。よって、連結な部分の個数は
