AtCoder Regular Contest 028
D
注文の多い高橋商店
AtCoder
⌀ 2997
原题
← C→
翻译中…

Problem Statement

翻译中…

高橋商店では $N$ 種類の商品が売られています。「どの種類の商品がいくつあるか」の情報が与えられるので、「合計 $M$ 個の商品を選ぶ方法」の数を求めて下さい。ただし、同じ種類の商品は区別しないこととします。

翻译中…

いや、これは少し簡単過ぎるので、ちょっとした注文も追加しよう。整数 $k$, $x$ からなる $Q$ 個の注文を用意したので、それぞれについて「$k_i$ 種類目の商品をちょうど $x_i$ 個選ばなければならないとき、合計 $M$ 個の商品を選ぶ方法」の数を求めて下さい。

翻译中…

Input

翻译中…

制約に誤りがあったため、修正しました。$1 ≦ Q ≦ 100,000$→$1 ≦ Q ≦ 500,000$(22:15)

翻译中…

入力は以下の形式で標準入力から与えられる。

翻译中…

N M Q
a_1 a_2 … a_N
k_1 x_1
k_2 x_2
:
k_Q x_Q

翻译中…
  • $1$ 行目には、商品の種類数を表した整数 $N (1 ≦ N ≦ 2000)$ と、選ぶ商品の個数を表す整数 $M (1 ≦ M ≦ 2000)$ と、注文の個数を表した整数 $Q (1 ≦ Q ≦ 500,000)$ が空白区切りで与えられる。
  • $2$ 行目では、各種類の商品の個数の情報がスペース区切りで $N$ 個与えられる。このうち $i$ 番目では、$i$ 種類目の商品の個数を表す整数 $a_i (1 ≦ a_i ≦ M)$ が与えられる。
  • $3$ 行目からの $Q$ 行では、注文に関する情報が与えられる。このうち $i$ 行目では、$2$ つの整数 $k_i (1 ≦ k_i ≦ N)$, $x_i (1 ≦ x_i ≦ a_{k_i})$ が空白区切りで与えられる。これは、$i$ 個目の注文が「$k_i$ 種類目の商品をちょうど $x_i$ 個選ばなければならないとき、合計 $M$ 個の商品を選ぶ方法の数を出力せよ」というものであることを表している。
翻译中…

部分点

翻译中…

この問題には部分点が設定されている。

翻译中…
  • $N ≦ 100, M ≦ 100, Q ≦ 100$ を満たすテストケースすべてに正解した場合は $10$ 点が与えられる。
  • $N ≦ 100, M ≦ 100$ を満たすテストケースすべてに正解した場合はさらに $20$ 点が与えられる。
  • $Q ≦ 1000$ を満たすテストケースすべてに正解した場合はさらに $50$ 点が与えられる。
翻译中…

Output

翻译中…

$Q$ 行に出力せよ。そのうち $i$ 行目には、$i$ 個目の注文への答えを $1,000,000,007 (10^9+7)$ で割った余りを出力せよ。

翻译中…

样例

Input #1
3 5 2
3 2 2
1 3
1 0
Output #1
3
0
$1$ つ目の注文は「$1$ 種類目の商品をちょうど $3$ 個選ばなければならないとき、合計 $5$ 個の商品を選ぶ方法の数を出力せよ」というもので、そのような方法は以下の $3$ 通りある。 - $1$ 種類目の商品を $3$ 個、$2$ 種類目の商品を $2$ 個、$3$ 種類目の商品を $0$ 個選ぶ。 - $1$ 種類目の商品を $3$ 個、$2$ 種類目の商品を $1$ 個、$3$ 種類目の商品を $1$ 個選ぶ。 - $1$ 種類目の商品を $3$ 個、$2$ 種類目の商品を $0$ 個、$3$ 種類目の商品を $2$ 個選ぶ。 また $2$ つ目の注文では $2$ 種類目と $3$ 種類目の商品から合計 $5$ 個の商品を選ばなければならないが、商品が足りずそのような方法は存在しないため、$0$ と出力する。
Input #2
4 7 5
1 2 3 4
4 0
3 2
2 1
1 1
1 0
Output #2
0
5
5
9
6
题目信息
题号
arc028_4
时间限制
2 s
内存限制
256 MB

题面与样例版权归 AtCoder 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。