만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

감자 셔플

시간 제한1초메모리 제한512 MB

요약
인접한 두 봉지의 감자 합이 k 이하일 때만 자리를 바꿀 수 있습니다. 도달 가능한 배열의 개수를 10^9+7로 나눈 나머지로 구합니다.
난이도

보통10점 중 7점

유형
배열, 조합론, 정렬
정답자
아직 제출이 없습니다

문제

마리치카의 지하실에는 감자가 많이 있다. 감자 자루 n개가 한 줄로 놓여 있고, i번째 자루에는 a_i개의 감자가 들어 있다.

제니크는 자루를 섞는 것을 좋아한다. 셔플 연산 한 번에 인접한 두 자루를 골라 위치를 맞바꿀 수 있다. 단, 두 자루에 든 감자의 합이 k를 넘지 않을 때만 가능하다. 제니크는 원하는 만큼 셔플 연산을 수행할 수 있다.

마리치카와 제니크는 제니크가 만들 수 있는 자루 배열이 몇 가지인지 궁금해졌다. 같은 위치에 감자 개수가 다른 자루가 있으면 서로 다른 배열로 본다. 제니크가 만들 수 있는 서로 다른 배열의 수를 구하라.

입력

첫 줄에 두 정수 n과 k가 주어진다 (1≤n≤1051 \le n \le 10^5, 0≤k≤2⋅1090 \le k \le 2 \cdot 10^9).

둘째 줄에 n개의 정수 a_i가 주어진다 (1≤ai≤1091 \le a_i \le 10^9).

출력

서로 다른 배열의 수를 109+710^9 + 7로 나눈 나머지를 한 줄에 출력한다.

예제2

  1. 예제 1

    입력
    3 7
    5 2 4
    
    예상 출력
    3
    
  2. 예제 2

    입력
    5 4
    1 2 3 2 1
    
    예상 출력
    10