编程题
### 问题描述 小蓝在星际旅行,他降落在蓝桥行星上后,惊奇地发现自己的飞船能源耗尽了。 小蓝的飞船共有 $n$ 个引擎需要充能,编号分别为 $1 \sim n$,所有的引擎能量都归零了。 蓝桥星上有很多稀有的宝石,可以为引擎充能。每个宝石有自己的种类 $p_i$,并且有自己的能量值 $s_i$,代表这个宝石可以为编号连续的 $s_i$ 个引擎充 $1$ 点能量。但是每个引擎对于同一种类的宝石,只能吸收 $1$ 点能量。 例如,存在一个种类为 $2$ 号的宝石,他的能量为 $3$,那么他可以为编号 $[1,3]$ 的引擎充能,或者为 $[2,4]$ 的引擎充能,依此类推。如果有两个 $2$ 类宝石为 $i$ 号引擎充了两次能,那么 $i$ 号引擎只能接受 $1$ 点能量;但是如果有两个 $2$ 类宝石和一个 $3$ 类宝石为 $i$ 号引擎充能,$i$ 号引擎能接受 $2$ 点能量,分别是来自 $2$ 类的 $1$ 点能量和 $3$ 类的 $1$ 点能量。 小蓝非常懒惰,他不想计算这些,他只是将开采的宝石对着引擎随意的一扔。如果对于第 $i$ 个宝石,它落到了第 $k$ 个位置,那么这个宝石会对 $[k, \min(k + s_i -1 , n)]$ 的引擎区间充能。 小蓝扔完之后,他想知道所有引擎的能量。作为小蓝的副手,你需要汇报每个引擎的能量值。 ### 输入格式 第一行输入三个整数 $n,m,q$,代表飞船引擎数量,宝石的种类数量,小蓝开采的宝石数量。 第二行输入 $m$ 个整数 $s_1, s_2, s_3,...,s_i...,s_m$,代表每种宝石的能量,$s_i$ 表示第 $i$ 种宝石的能量。 接下来输入 $q$ 行,每行两个整数 $p, k$,代表小蓝将一个种类为 $p$ 的宝石扔到了第 $k$ 个引擎上。 ### 输出格式 输出一行,$n$ 个整数,整数之间用一个空格隔开,表示充能结束后,每个引擎的能量。 ### 样例输入 ``` 5 2 3 2 4 1 1 2 3 1 2 ``` ### 样例输出 ``` 1 1 2 1 1 ``` ### 说明 第一次,种类 $1$ 的宝石为区间 $[1,2]$ 充能,得到的能量为 $\lbrace 1, 1, 0, 0, 0\rbrace$。 第二次,种类 $2$ 的宝石为区间 $[3,5]$ 充能,得到的能量为 $\lbrace 1, 1, 1, 1, 1\rbrace$。 第三次,种类 $1$ 的宝石为区间 $[2,3]$ 充能,由于 $2$ 号引擎已经被 $1$ 类宝石充能过了,所以仅有 $3$ 号引擎被充能,得到的能量为 $\lbrace 1, 1, 2, 1, 1\rbrace$。 ### 评测数据范围 $1 \le n ,m \le 10^5, 1 \le s_i \le 10^5, 1 \le p \le m, 1 \le k \le n$。
查看答案
赣ICP备20007335号-2