#CSP202403D. 十滴水

十滴水

题目来自第 33 次 CSP 认证 T4,评测使用自造高质量复刻数据。我们承认原始题面与大样例版权均归中国计算机学会(CCF)所有,因此题面与评测服务均免费对外开放。如果您认为我们侵犯了您的权益,可联系我们

时间限制: 3.0 秒 1.0 秒

空间限制: 512 MB

题目描述

十滴水是一个非常经典的小游戏。

img

小 C 正在玩一个一维版本的十滴水游戏。我们通过一个例子描述游戏的基本规则。

游戏在一个 1×c1 \times c 的网格上进行,格子用整数 x(1xc)x(1 \leq x \leq c) 编号,编号从左往右依次递增。网格内 mm 个格子里有 141 \sim 4 滴水,其余格子里没有水。在我们的例子中,c=m=5c=m=5,按照编号顺序,每个格子中分别有 2,4,4,4,22,4,4,4,2 滴水。

玩家可以进行若干次操作,每次操作中,玩家选择一个有水的格子,将格子的水滴数加一。任何时刻若某个格子的水滴数大于等于 55,这个格子里的水滴就会向两侧爆开。此时,这个格子的水被清空,同时对于左方、右方两个方向同时进行以下操作:找到当前格子在对应方向上最近的有水的格子,如果存在这样的格子,将这个格子的水滴数加一。若在某个时刻,有多个格子的水滴数大于等于 55,则最靠左的先爆开。

在我们的例子中,若玩家对第三格进行操作,则其水滴数变为 55,故第三格水滴爆开,水被清空,其左侧最近的有水格子(第二格)和右侧最近的有水格子(第四格)的水量增加 11,此时每个格子中分别有 2,5,0,5,22,5,0,5,2 滴水。

此时第二格和第四格的水滴数均大于等于 55,按照规则,第二格的水先爆开,爆开后每个格子中分别有 3,0,0,6,23,0,0,6,2 滴水;最后第四格的水滴爆开,每个格子中分别有 4,0,0,0,34,0,0,0,3 滴水。

小 C 开始了一局游戏并进行了 nn 次操作。小 C 在每次操作后,会等到所有水滴数大于等于 55 的格子里的水滴都爆开再进行下一次操作。

小 C 想知道他的水平有多高,于是他想知道每一次操作后还有多少格子里有水。

保证这 nn 次操作都是合法的,即每次操作时操作的格子里都有水。

输入格式

从标准输入读入数据。

输入的第一行三个整数 c,m,nc,m,n 分别表示网格宽度、有水的格子个数以及操作次数。

接下来 mm 行每行两个整数 x,wx, w,表示第 xx 格有 ww 滴水。

接下来 nn 行每行一个整数 pp,表示小 C 对第 pp 格做了一次操作。

输出格式

输出到标准输出。

输出 nn 行,每行一个整数表示这次操作之后网格上有水的格子数量。

5 5 2
1 2
2 4
3 4
4 4
5 2
3
1
2
1

子任务

对于所有测试数据,

  • 1c1091 \leq c \leq 10^91mmin(c,3×105)1 \leq m \leq \min(c, 3 \times 10^5)1n4m1 \leq n \leq 4m
  • 1x,pc1 \leq x, p \leq c1w41 \leq w \leq 4
  • 输入的所有 xx 两两不同;
  • 对于每个输入的 pp,保证在对应操作时 pp 内有水。

本题采用捆绑测试,你只有通过一个子任务中的所有测试点才能得到该子任务的分数。

子任务编号 cc\le mm\le 特殊性质 分值
1 3030 \checkmark 15
2 30003000 30003000
3 ×\times 10
4 10910^9 15
5 3×1053\times 10^5 3×1053\times 10^5
6 10910^9 \checkmark
7 ×\times

特殊性质:在游戏的任意时刻(包括水滴爆开的连锁反应过程中),只有至多一个格子的水滴数大于等于 55

提示

本题输入输出量较大,请采用效率较高的输入输出方式。