合并石子
题号:NC214445
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

    现在有n堆石子,每堆石子初始大小为1。现在,猪猪会进行n-1轮操作,每次随机将任意相邻的两堆石子合并,合并的体力消耗是两堆石子大小之和,合并后的石子大小也是两堆石子大小之和。显然,n-1轮操作过后,场上将仅剩一堆石子。
    猪猪想问你,所有可能的合并方案体力消耗之和。两个合并方案不同的条件是存在一轮操作中,两个方案选择合并了不同的两堆石子。
    实际上猪猪懒得问你,因为他觉得O(n)解决易如反掌,只是因为怜悯放宽了范围。

输入描述:

一行一个正整数n  (n<=2000)

输出描述:

一行一个正整数为合并体力消耗之和对1000000007取模的结果。
示例1

输入

复制
3

输出

复制
10
示例2

输入

复制
5

输出

复制
308