4422: Not the Only Tree

内存限制:128 MB 时间限制:1 S 标准输入输出
题目类型:传统 评测方式:Special Judge 上传者:
提交:1 通过:1

题目描述

We all know that to build a traditional “Binary Search Tree”, we put the smaller numbers to the left while the larger to the right. Different data insertion order may result in different tree structure.

In this problem, you need to calculate how many different input sequences there are to get a binary search tree with a specific structure.

输入格式

There are no more than 100 test cases. Each case contains two lines:

The first line is an integer n.

The second line is a permutation of [1, n], describing a Binary Search Tree constructed according to the order of the sequence.

1 ≤ n ≤ 103.

输出格式

For each test case, output the number of different sequences which could build a Binary Search Tree with the same structure, including the input one.

The result should be modulo 109 + 7.

输入样例 复制

4
3 2 4 1
5
3 5 2 1 4

输出样例 复制

3
6

数据范围与提示

For the first case, 3 2 1 4, 3 2 4 1, 3 4 2 1 could make the same tree:

    3
   / \
  2   4
 /
1

So the answer is 3.