AT_s8pc_3_f 寿司
题目描述
有 $N$ 名顾客在寿司店里。每位顾客都有一个编号,分别为 $1,2,3,\dots,N$。
厨师将进行 $Q$ 次操作。
在第 $i$ 次操作中,进行如下步骤:
1. 厨师从顾客 $1,2,3,\dots,a_i$ 中,选出吃过寿司盘数最少的人。如果有多个人盘数相同,则选择编号最小的那个人。
2. 厨师将寿司递给被选中的那个人。
3. 被选中的顾客吃掉寿司。
4. 步骤 1~3 重复 $b_i$ 次。
请在所有 $Q$ 次操作结束后,计算每个人吃过的寿司盘数。
输入格式
输入通过标准输入给出,格式如下:
> $N\ Q$
> $a_1\ b_1$
> $a_2\ b_2$
> $\vdots$
> $a_Q\ b_Q$
- 第一行包含两个整数 $N$ 和 $Q$,表示顾客数量和操作次数,以空格分隔。
- 接下来的 $Q$ 行,每行包含两个整数 $a_i$ 和 $b_i$,以空格分隔。
输出格式
请按如下格式输出:
- 输出 $N$ 行。
- 第 $i$ 行输出顾客 $i$ 吃过的寿司盘数。
说明/提示
### 限制条件
- $3 \leq N, Q \leq 100,\!000$
- $1 \leq a_i \leq N$
- $1 \leq b_i \leq 10^{12}$
- 最终每个人的寿司盘数都不会超过 $2 \times 10^{13}$。
### 子任务
子任务1 \[60 分\]
- $N, Q \leq 100$
- $b_i = 1$
子任务2 \[400 分\]
- $N, Q \leq 100$
- $b_i \leq 10^{12}$
子任务3 \[240 分\]
- $N, Q \leq 100,\!000$
- $b_i = 1$
子任务4 \[500 分\]
- 无额外限制。
### 样例解释 1
每位顾客吃过的寿司盘数变化如下:
| 操作次数 | 客1 | 客2 | 客3 | 客4 | 客5 | 客6 | 客7 | 客8 | 客9 |
|:--------:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
| 第1次操作 | 3 | 2 | 2 | 2 | 2 | 0 | 0 | 0 | 0 |
| 第2次操作 | 3 | 2 | 2 | 2 | 2 | 2 | 1 | 1 | 0 |
| 第3次操作 | 4 | 4 | 4 | 4 | 2 | 2 | 1 | 1 | 0 |
由 ChatGPT 4.1 翻译