#arc067c. [arc067_c]Grouping

[arc067_c]Grouping

问题描述

NN个人,编号方便地为11NN。我们想要将他们分成若干组,满足以下两个条件:

  • 每个组中的人数在AABB之间(包括AABB)。

  • FiF_i为恰好包含ii个人的组的数量。对于所有ii,都有Fi=0F_i=0或者CFiDC≤F_i≤D

找出满足条件的分组方式的数量。如果只有两种分组方式仅有一对人属于其中一种分组方式,则认为这两种方式是不同的。由于这种方式的数量可能非常大,输出结果时取模109+710^9+7

约束条件

  • 1N1031≤N≤10^3
  • 1ABN1≤A≤B≤N
  • 1CDN1≤C≤D≤N

输入

输入以以下格式从标准输入中给出:

NN AA BB CC DD

输出

输出满足条件的分组方式的数量,取模109+710^9+7


示例输入 1

3 1 3 1 2

示例输出 1

4

有四种分组方式:

  • (1,2),(3)(1,2),(3)
  • (1,3),(2)(1,3),(2)
  • (2,3),(1)(2,3),(1)
  • (1,2,3)(1,2,3)

以下的分组方式不计入数量:(1),(2),(3)(1),(2),(3)。因为它仅满足第一个条件而不满足第二个条件。


示例输入 2

7 2 3 1 3

示例输出 2

105

在给定条件下,满足的分组方式有两种包含两个人的组和一种包含三个人的组的形式。共有105105种这样的方式。


示例输入 3

1000 1 1000 1 1000

示例输出 3

465231251

示例输入 4

10 3 4 2 5

示例输出 4

0

答案可能为00