跳转至

升级工具箱

  • 参考时间限制:0.5 秒(参考环境:评测环境与性能;仅供预估)
  • 实际时间限制:标准程序在目标评测环境中处理最慢正式测试文件的基准时间的 2 倍,按 0.5 秒的倍数向上取整;若平台仅支持更粗的粒度,再向上取整到平台可设置值。
  • 内存限制:128 MB

背景故事

武装采矿车发现了一批升级工具箱。不同类型的工具箱价值不同,仓库数量和各类物资预算也有限。调度员想知道:分别装载零个、一个、两个……工具箱时,各有多少种类型数量搭配。

形式化问题描述

有 \(n\) 种工具箱,编号为 \(1\) 到 \(n\) .第 \(i\) 种每个价值为 \(i\) ,最多有 \(K_i\) 个,所采集的该种工具箱总价值不能超过 \(V_i\) .

一个方案由整数向量 \((c_1,\ldots,c_n)\) 表示,其中

\[ 0\le c_i\le K_i,\qquad i c_i\le V_i \]

同种工具箱不作区分;两种方案不同,当且仅当至少一种工具箱的数量不同。每种类型的价值上限独立计算,没有所有类型共享的总价值上限。

令 \(C_i=\min(K_i,\lfloor V_i/i\rfloor)\) ,\(S=\sum_{i=1}^n C_i\) .请依次计算工具箱总数量为 \(0,1,\ldots,S\) 的方案数,并对 \(100000007\) 取模。\(n=0\) 时只存在空方案,\(S=0\) .

输入格式

第一行一个整数 \(n\) .接下来 \(n\) 行,第 \(i\) 行两个整数 \(K_i,V_i\) .

输出格式

输出一行 \(S+1\) 个整数,第 \(j+1\) 个表示总数量为 \(j\) 的方案数对 \(100000007\) 取模的结果。

样例 1

输入

3
10 2
1 10
1 10

输出

1 3 4 3 1

解释

三种类型的数量上限分别为 \(2,1,1\) .选两个工具箱的四种数量向量为 \((2,0,0),(1,1,0),(1,0,1),(0,1,1)\) .

样例 2

输入

0

输出

1

解释

空方案恰有一种。

样例 3

输入

3
0 1000
3 5
1000 2

输出

1 1 1

解释

只有第二种可采集,最多两个。第一种数量为零不会改变第二种的编号或单价。

数据范围与保证

\(0\le n\le1000\) ,\(0\le K_i,V_i\le1000\) ;所有输入量均为整数。

数据分组

分值比例 额外条件
100% 无额外条件