크기가 n인 수열 a1,a2,…,an에 변환 연산을 적용한다. 변환 연산은 두 단계로 이루어진다. 먼저 새 수열 b1,b2,…,bn을 다음 식으로 만든다.
bi=(minj=1naj)−ai+∑j=1naj(1≤i≤n)
그다음 수열 a를 수열 b로 바꾼다. 즉 모든 1≤i≤n에 대해 ai의 값을 bi로 바꾼다.
길이가 n인 수열 x에 대해 q(x)=maxi=1nxi−mini=1nxi로 정의한다.
수열 r은 어떤 수열에 변환 연산을 k번 적용한 결과이고, q(r)의 값과 k를 알고 있다. 이때 다음 두 조건을 모두 만족하는 수열 c1,c2,…,cn의 개수를 구하는 프로그램을 작성하시오.
- 모든 1≤i≤n에 대해 1≤ci≤m이다.
- q(d)=q(r)이다. 여기서 d는 수열 c에 변환 연산을 k번 적용한 수열이다.