페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#5942

레고 시퀀스 2초 1024MB

문제

크기가 같은 N개의 큐브가 있으며, i 번째 큐브는 i 색상이다.

정올이는 큐브를 꽂을 수 있는 K개의 칸에 한 줄 모양으로 레고 베이스에 벽을 세우려고 한다.

다음과 같은 방법으로 큐브를 배치하려고 한다:

  • 먼저, 색상 1의 큐브를 베이스의 임의의 지점에 놓는다.

  • 색상 2부터 색상 N까지의 각 큐브에 대해 이전에 배치된 큐브와 인접한 지점에 큐브를 배치한다. 그 자리가 비어 있지 않으면 새 큐브를 이미 해당 자리에 있던 다른 큐브 위에 놓게 된다.

벽을 만들게 되면, i번째 위치에 놓인 큐브 중 맨 위의 큐브의 색상(색상이 없으면 0)이 적힌 길이 K의 레고 시퀀스가 생성된다.

값이 모두 동일해도 순서가 다른 두 레고 시퀀스는 서로 다른 것으로 간주된다. 총 몇 개의 서로 다른 레고 시퀀스가 생성되는 것이 가능한지 알아보자.


입력

첫 줄에 큐브 수와 레고 베이스의 길이를 의미하는 정수 NK가 주어진다. (2 ≤ N,K ≤ 5,000)


출력

서로 다른 레고 시퀀스의 개수를 10^9 + 7로 나눈 나머지를 출력한다.


부분문제

번호 점수 조건
#120점

N,K \le 18

#230점

N,K \le 50

#330점

N,K \le 500

#420점

추가 제한 없음


예제1

입력
43
출력
8

가능한 레고 시퀀스들: (0, 3, 4), (2, 3, 4), (0, 4, 3), (1, 4, 3), (4, 3, 0), (4, 3, 2), (3, 4, 0), (3, 4, 1).


예제2

입력
35
출력
14

가능한 시퀀스 중 하나는 (0, 3, 2, 0, 0)입니다. 정올이는 첫 번째 큐브를 두 번째 위치에, 두 번째 큐브를 세 번째 위치에, 세 번째 큐브를 두 번째 위치(첫 번째 큐브 위에)에 배치하여 이를 달성할 수 있습니다.


예제3

입력
100200
출력
410783331

출처

COCI 2023/2024 Contest #1 4번

역링크