이분탐색의 흔적
시간 제한1초메모리 제한1024 MB
길이 N의 정렬된 배열 중 주어진 이진 탐색 질문 순서를 그대로 만들어 내는 배열의 개수를 10^9+7로 나눈 나머지로 구합니다.
문제
건이와 준성이는 오름차순으로 정렬된 길이가 인 배열 를 보며 게임을 한다. 준성이는 배열의 원소 중 무작위로 하나를 선택한다. 답 구간은 준성이가 선택한 원소가 존재할 수 있는 인덱스의 구간을 의미하며, 처음에는 으로 시작한다.
건이는 준성이에게 가능한 답 구간의 원소를 하나 골라, 생각한 숫자가 그 원소가 맞는지 질문할 수 있다. 준성이는 그에 따라 Yes, Up, Down 중 하나를 답한다. 준성이는 거짓말을 하지 않으며, Yes를 답하면 게임이 종료된다. 이때 건이가 부른 개 원소를 순서대로 나열한 배열 를 이분탐색의 흔적이라 한다.
건이는 모든 게임에서 항상 최선의 선택을 하므로, 가능한 답 구간이 일 때 항상 를 물어본다.
- 준성이가 Up을 답하면 다음 구간은 이 된다.
- 준성이가 Down을 답하면 다음 구간은 이 된다.
이분탐색의 흔적이 주어졌을 때, 그 흔적을 만들 수 있는 배열 의 개수를 구하여라.
입력
첫 번째 줄에 배열의 크기 과 이분탐색의 흔적의 크기 가 공백으로 구분되어 주어진다.
두 번째 줄에 이분탐색의 흔적을 이루는 정수 가 공백으로 구분되어 주어진다.
출력
배열 의 개수를 로 나눈 나머지를 출력한다.
제한
- 모든 에 대해
- 가능한 배열 가 하나 이상 존재하는 흔적만 입력으로 주어진다.