AT_fft_c 高速フーリエ変換

题目描述

[problemUrl]: https://atcoder.jp/contests/atc001/tasks/fft_c 本题为讲座用题目,页面下方附有题解。 AtCoder 食堂正在考虑定食的菜单。 - 主菜中,价格为 $i$ 日元的有 $A_i$ 种类($1 \leq i \leq N$)。 - 副菜中,价格为 $i$ 日元的有 $B_i$ 种类($1 \leq i \leq N$)。 定食由一种主菜和一种副菜组成。定食的价格为所选主菜和副菜价格之和。 请计算对于每个 $k\ (1 \leq k \leq 2N)$,价格为 $k$ 日元的定食有多少种。

输入格式

输入以以下格式从标准输入读入。 > $N$ > $A_1\ B_1$ > $A_2\ B_2$ > $\vdots$ > $A_N\ B_N$ - 第 $1$ 行包含一个整数 $N\ (1 \leq N \leq 100,\!000)$。 - 接下来的 $N$ 行,第 $i$ 行包含两个整数 $A_i,\ B_i\ (0 \leq A_i,\ B_i \leq 100)$。

输出格式

请输出 $2N$ 行。第 $k$ 行输出价格为 $k$ 日元的定食种类数。

说明/提示

### 题解 **[高速傅里叶变换](https://www.slideshare.net/secret/fc5RcW8Wkqciu "高速フーリエ変換")** by **[AtCoder Inc.](http://www.slideshare.net/chokudai)** ### 样例解释 1 - 价格为 $1$ 日元的组合不存在。 - 价格为 $2$ 日元的组合,由于 $1$ 日元的主菜和副菜各有 $1$ 种,所以有 $1$ 种组合。 - 价格为 $3$ 日元的组合有 $1 \times 2 + 2 \times 1 = 4$ 种。 由 ChatGPT 4.1 翻译