우리 문제가 아니다
시간 제한2초메모리 제한512 MB
-1로 표시된 빈칸을 채워 모든 인접한 두 수의 곱에 두 수 중 작은 값을 곱한 값이 C 이하가 되는 경우의 수를 구합니다. 경우의 수가 무한하면 -1을 출력합니다.
문제
어떤 사람(내가 아님!)이 길이가 이고 음이 아닌 정수로 이루어진 배열을 좋은 배열이라고 부른다. 배열이 좋은 배열이 되려면 모든 에 대해 가 성립해야 한다.
다른 사람(우리와는 상관없다!)이 길이가 이고 빈칸이 있는 배열을 준다. 빈칸을 채워서 배열이 좋은 배열이 되도록 하는 방법의 수를 구하라. 방법이 무한히 많으면 그 사실을 판단하라. 답이 유한하면 으로 나눈 나머지를 구하라.
입력
첫 줄에 두 정수 과 가 주어진다(, ). 은 배열의 길이이고, 는 곱에 대한 제약이다.
둘째 줄에는 배열 가 주어진다. 각 원소는 빈칸을 뜻하는 이거나, 이상 이하의 정수이다.
출력
방법의 수가 무한하면 을 출력한다. 그렇지 않으면 방법의 수를 으로 나눈 나머지를 출력한다.