Preparando MOJI

Isolation

3000ms 262144K

Description:

Find the number of ways to divide an array $$$a$$$ of $$$n$$$ integers into any number of disjoint non-empty segments so that, in each segment, there exist at most $$$k$$$ distinct integers that appear exactly once.

Since the answer can be large, find it modulo $$$998\,244\,353$$$.

Input:

The first line contains two space-separated integers $$$n$$$ and $$$k$$$ ($$$1 \leq k \leq n \leq 10^5$$$) — the number of elements in the array $$$a$$$ and the restriction from the statement.

The following line contains $$$n$$$ space-separated integers $$$a_1, a_2, \ldots, a_n$$$ ($$$1 \leq a_i \leq n$$$) — elements of the array $$$a$$$.

Output:

The first and only line contains the number of ways to divide an array $$$a$$$ modulo $$$998\,244\,353$$$.

Sample Input:

3 1
1 1 2

Sample Output:

3

Sample Input:

5 2
1 1 2 1 3

Sample Output:

14

Sample Input:

5 5
1 2 3 4 5

Sample Output:

16

Note:

In the first sample, the three possible divisions are as follows.

  • $$$[[1], [1], [2]]$$$
  • $$$[[1, 1], [2]]$$$
  • $$$[[1, 1, 2]]$$$

Division $$$[[1], [1, 2]]$$$ is not possible because two distinct integers appear exactly once in the second segment $$$[1, 2]$$$.

Informação

Codeforces

Provedor Codeforces

Código CF1129D

Tags

data structuresdp

Submetido 0

BOUA! 0

Taxa de BOUA's 0%

Datas 09/05/2023 09:45:23

Relacionados

Nada ainda