AT_abc473_e [ABC473E] K-Divisible Subarrays
Description
非負整数からなる長さ $ N $ の列 $ A=(A _ 1,A _ 2,\ldots,A _ N) $ が与えられます。
非負整数列からなる長さ $ 1 $ 以上の列 $ S=(S _ 1,S _ 2,\ldots,S _ k) $ の**スコア**を、列 $ S _ i\ (1\le i\le k) $ のうち要素の総和が $ K $ で割り切れるものの個数として定めます。
$ A $ を $ 1 $ つ以上の連続する部分列に分割して得られる非負整数列の列に対するスコアの最大値を求めてください。 ここで、長さ $ N $ の列 $ A $ を $ 1 $ つ以上の連続する部分列に分割するとは、整数からなる長さ $ 1 $ 以上の列 $ l=(l _ 1,l _ 2,\ldots,l _ k)\ (1=l _ 1\lt l _ 2\lt\cdots\lt l _ k\le N) $ をとり、以下のような $ k $ 個の列を作ることをいいます。
- $ (A _ {l _ i},A _ {l _ i+1},\ldots,A _ {l _ {i+1}-1})\ (1\le i\le k) $ (ここで、 $ l _ {k+1}=N+1 $ とする。)
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ K $ $ A _ 1 $ $ A _ 2 $ $ \ldots $ $ A _ N $
Output Format
答えを出力せよ。
Explanation/Hint
### Sample Explanation 1
例えば、 $ A $ を $ (6),(8,2),(2),(6,4) $ のように $ 4 $ つの連続する部分列に分割することができます。 $ 2 $ 番目と $ 4 $ 番目の列の要素の総和が $ 10 $ の倍数になるので、 $ ((6),(8,2),(2),(6,4)) $ のスコアは $ 2 $ です。
スコアが $ 3 $ 以上になるように $ A $ を分割することはできないので、`2` を出力してください。
### Constraints
- $ 1\le N\le2\times10 ^ 5 $
- $ 1\le K\le10 ^ 9 $
- $ 0\le A _ i\lt K $
- 入力はすべて整数