U637812 三波那契数列

题目描述

有一种数列叫做“Tribonacci 数列”。这个数列的每一项等于它前三项的和。 具体地,定义如下: 1. $a_1 = 0$,$a_2 = 0$,$a_3 = 1$ 2. $a_n = a_{n-1} + a_{n-2} + a_{n-3}$ 作为参考,下面给出 Tribonacci 数列的部分项: | 项数 | $a_1$ | $a_2$ | $a_3$ | $a_4$ | $a_5$ | $a_6$ | $a_7$ | $a_8$ | …… | $a_n$ | | :--- | :----- | :----- | :----- | :----- | :----- | :----- | :----- | :----- | :----- | :--------------------------------------- | | 值 | 0 | 0 | 1 | 1 | 2 | 4 | 7 | 13 | …… | $a_{n-1} + a_{n-2} + a_{n-3}$ | 由于答案可能很大,所以你只需要输出 $a_n$ 除以 $10^9 + 7$ 的余数即可。

输入格式

输入包含一行,一个整数 $n$。

输出格式

输出一行,表示 Tribonacci 数列的第 $n$ 项 $a_n$ 除以 $10^9 + 7$ 的余数。

说明/提示

#### 数据规模与约定 - 对于 $20\%$ 的数据,$n \le 10^6$ - 对于 $50\%$ 的数据,$n \le 10^9$ - 对于 $100\%$ 的数据,$1 \le n \le 10^{12}$