AT_abc269_g [ABC269G] Reversible Cards 2

题目描述

有 $N$ 张编号为 $1$ 到 $N$ 的卡片。 卡片 $i$ 的正面写有整数 $A_i$,反面写有整数 $B_i$。并且有 $\sum_{i=1}^N (A_i + B_i) = M$。 对于 $k=0,1,2,\ldots,M$,请解决以下问题: > $N$ 张卡片全部正面朝上排列。你可以选择 $0$ 张到 $N$ 张卡片,将它们翻面。 > 使得可见数字之和为 $k$,最少需要翻面多少张卡片?请输出所需的最小张数。 > 如果无论如何翻面都无法使可见数字之和为 $k$,请输出 $-1$。

输入格式

输入以以下格式从标准输入给出。 > $N$ $M$ $A_1$ $B_1$ $A_2$ $B_2$ $\vdots$ $A_N$ $B_N$

输出格式

请输出 $M+1$ 行。第 $i$ 行输出当 $k=i-1$ 时的答案。

说明/提示

### 限制条件 - $1 \leq N \leq 2 \times 10^5$ - $0 \leq M \leq 2 \times 10^5$ - $0 \leq A_i, B_i \leq M$ - $\sum_{i=1}^N (A_i + B_i) = M$ - 所有输入值均为整数 ### 样例解释 1 例如,当 $k=0$ 时,只需将第 $2$ 张卡片翻面,就能使可见数字之和为 $0+0+0=0$,这是最优解。 又如,当 $k=5$ 时,将所有卡片翻面,可见数字之和为 $2+0+3=5$,这是最优解。 由 ChatGPT 4.1 翻译