문제1147--조카의 조기교육

1147: 조카의 조기교육

시간제한 : 1.000 sec  메모리제한 : 128 MB

문제 설명

어린 조카 선율이의 조기교육을 위해서 숫자 블록을 준비 했습니다.
일렬로 있는 숫자 블록 중 연속된 일부분을 떼서 선율이에게 가지고 놀도록 해야 하는데,
선율이의 어머니는 아이가 아직 어리니 너무 많은 종류의 숫자를 주면 운다고 하였습니다.
하지만 너무 적은 종류의 숫자만 주면 조기교육에 도움이 안된다고 합니다.

아래와 같이 나열된 블록이 있을 때,

1, 1, 2, 3, 3, 2

서로 다른 "두 종류"의 블록을 포함하고 있는 "연속된" 블록을 주어야 한다고 할 경우,

[1, 1, 2], [1, 2], [2, 3], [2, 3, 3], [2, 3, 3, 2], [3, 3, 2], [3, 2]

위와 같은 7가지의 연속된 블록이 조건을 충족합니다.

나열된 블록과, 허락된 서로 다른 종류 "K"가 주어졌을 때,
선율이에게 줄 수 있는 블록의 경우의 수가 총 몇가지 인지 찾아주세용 ㅇ_<

입력 설명

첫 줄에는 테스트 케이스의 개수 T(1 <= T <= 100)가 주어집니다.

그 다음 줄부터는 각 테스트 케이스 별로,
첫 줄에는 블록의 개수 N (1 <= N <= 20,000)
두 번째 줄에는 N개의 숫자 블록(1 <= 블록에 씌은 숫자 <= N)이 공백으로 구분되어 주어지고,
세 번째 줄에는 허용된 서로다른 숫자의 가짓수 K(1 <= K <= N)가 주어집니다.

출력 설명

각 줄에 몇 가지의 서로 다른 K개의 숫자 블록을 뽑을 수 있는지 출력 해 주세요.

입력 예시 Copy

3
6
1 1 2 3 3 2
2
5
1 2 1 3 4
3
2
1 1
1

출력 예시 Copy

7
3
3

도움

 마지막 입력 [1, 1] 의 경우 [1], [1, 1], [1] 3가지가 존재 합니다. 값이 같더라도 인덱스가 다른경우는 서로 다른 블록으로 취급합니다.

출처/분류