#arc058c. [arc058_c]Iroha and Haiku

[arc058_c]Iroha and Haiku

问题描述

题目

俳句是日本诗歌的一种短小形式。一个俳句由三个短语组成,分别有5、7和5个音节,按照这个顺序。

Iroha正在整数序列中寻找_XYZX,Y,Z-Haiku(如下定义)。

考虑长度为NN的整数序列,其元素介于111010之间(包含边界)。从这10N10^N个序列中,有多少个包含XYZX,Y,Z-Haiku?

在这里,整数序列a0a1...aN1a_0,a_1,...,a_{N-1}被称为_XYZX,Y,Z-Haiku_,如果且仅当存在四个索引xyzw(0x<y<z<wN)x,y,z,w (0≤x<y<z<w≤N)满足以下条件:

  • ax+ax+1+...+ay1=Xa_x+a_{x+1}+...+a_{y-1}=X
  • ay+ay+1+...+az1=Ya_y+a_{y+1}+...+a_{z-1}=Y
  • az+az+1+...+aw1=Za_z+a_{z+1}+...+a_{w-1}=Z

由于答案可能非常大,故以模109+710^9+7的形式输出。

约束条件

  • 3N403≤N≤40
  • 1X51≤X≤5
  • 1Y71≤Y≤7
  • 1Z51≤Z≤5

输入

从标准输入读入输入数据,格式如下:

NN XX YY ZZ

输出

打印包含XYZX,Y,Z-Haiku的序列数,按模109+710^9+7

输入样例1

3 5 7 5

输出样例1

1

在这里,唯一包含5,7,55,7,5-Haiku的序列是\[5, 7, 5\]

输入样例2

4 5 7 5

输出样例2

34

输入样例3

37 4 2 3

输出样例3

863912418

输入样例4

40 5 7 5

输出样例4

562805100