A12121 | Alice and Hairdresser
时间限制1s
内存限制256MB
通过 / 提交0/0
题目描述
Alice's hair is growing by leaps and bounds. Maybe the cause of it is the excess of vitamins, or maybe it is some black magic...
To prevent this, Alice decided to go to the hairdresser. She wants for her hair length to be at most $l$ centimeters after haircut, where $l$ is her favorite number. Suppose, that the Alice's head is a straight line on which $n$ hairlines grow. Let's number them from $1$ to $n$ . With one swing of the scissors the hairdresser can shorten all hairlines on any segment to the length $l$ , given that all hairlines on that segment had length strictly greater than $l$ . The hairdresser wants to complete his job as fast as possible, so he will make the least possible number of swings of scissors, since each swing of scissors takes one second.
Alice hasn't decided yet when she would go to the hairdresser, so she asked you to calculate how much time the haircut would take depending on the time she would go to the hairdresser. In particular, you need to process queries of two types:
- $0$ — Alice asks how much time the haircut would take if she would go to the hairdresser now.
- $1$ $p$ $d$ — $p$ -th hairline grows by $d$ centimeters.
Note, that in the request $0$ Alice is interested in hypothetical scenario of taking a haircut now, so no hairlines change their length.
To prevent this, Alice decided to go to the hairdresser. She wants for her hair length to be at most $l$ centimeters after haircut, where $l$ is her favorite number. Suppose, that the Alice's head is a straight line on which $n$ hairlines grow. Let's number them from $1$ to $n$ . With one swing of the scissors the hairdresser can shorten all hairlines on any segment to the length $l$ , given that all hairlines on that segment had length strictly greater than $l$ . The hairdresser wants to complete his job as fast as possible, so he will make the least possible number of swings of scissors, since each swing of scissors takes one second.
Alice hasn't decided yet when she would go to the hairdresser, so she asked you to calculate how much time the haircut would take depending on the time she would go to the hairdresser. In particular, you need to process queries of two types:
- $0$ — Alice asks how much time the haircut would take if she would go to the hairdresser now.
- $1$ $p$ $d$ — $p$ -th hairline grows by $d$ centimeters.
Note, that in the request $0$ Alice is interested in hypothetical scenario of taking a haircut now, so no hairlines change their length.
输入格式
The first line contains three integers $n$ , $m$ and $l$ ( $1 \le n, m \le 100\,000$ , $1 \le l \le 10^9$ ) — the number of hairlines, the number of requests and the favorite number of Alice.
The second line contains $n$ integers $a_i$ ( $1 \le a_i \le 10^9$ ) — the initial lengths of all hairlines of Alice.
Each of the following $m$ lines contains a request in the format described in the statement.
The request description starts with an integer $t_i$ . If $t_i = 0$ , then you need to find the time the haircut would take. Otherwise, $t_i = 1$ and in this moment one hairline grows. The rest of the line than contains two more integers: $p_i$ and $d_i$ ( $1 \le p_i \le n$ , $1 \le d_i \le 10^9$ ) — the number of the hairline and the length it grows by.
The second line contains $n$ integers $a_i$ ( $1 \le a_i \le 10^9$ ) — the initial lengths of all hairlines of Alice.
Each of the following $m$ lines contains a request in the format described in the statement.
The request description starts with an integer $t_i$ . If $t_i = 0$ , then you need to find the time the haircut would take. Otherwise, $t_i = 1$ and in this moment one hairline grows. The rest of the line than contains two more integers: $p_i$ and $d_i$ ( $1 \le p_i \le n$ , $1 \le d_i \le 10^9$ ) — the number of the hairline and the length it grows by.
输出格式
For each query of type $0$ print the time the haircut would take.
输入输出样例
输入 #1
4 7 3 1 2 3 4 0 1 2 3 0 1 1 3 0 1 3 1 0
输出 #1
1 2 2 1
Consider the first example:
- Initially lengths of hairlines are equal to $1, 2, 3, 4$ and only $4$ -th hairline is longer $l=3$ , and hairdresser can cut it in $1$ second.
- Then Alice's second hairline grows, the lengths of hairlines are now equal to $1, 5, 3, 4$
- Now haircut takes two seonds: two swings are required: for the $4$ -th hairline and for the $2$ -nd.
- Then Alice's first hairline grows, the lengths of hairlines are now equal to $4, 5, 3, 4$
- The haircut still takes two seconds: with one swing hairdresser can cut $4$ -th hairline and with one more swing cut the segment from $1$ -st to $2$ -nd hairline.
- Then Alice's third hairline grows, the lengths of hairlines are now equal to $4, 5, 4, 4$
- Now haircut takes only one second: with one swing it is possible to cut the segment from $1$ -st hairline to the $4$ -th.
- Initially lengths of hairlines are equal to $1, 2, 3, 4$ and only $4$ -th hairline is longer $l=3$ , and hairdresser can cut it in $1$ second.
- Then Alice's second hairline grows, the lengths of hairlines are now equal to $1, 5, 3, 4$
- Now haircut takes two seonds: two swings are required: for the $4$ -th hairline and for the $2$ -nd.
- Then Alice's first hairline grows, the lengths of hairlines are now equal to $4, 5, 3, 4$
- The haircut still takes two seconds: with one swing hairdresser can cut $4$ -th hairline and with one more swing cut the segment from $1$ -st to $2$ -nd hairline.
- Then Alice's third hairline grows, the lengths of hairlines are now equal to $4, 5, 4, 4$
- Now haircut takes only one second: with one swing it is possible to cut the segment from $1$ -st hairline to the $4$ -th.
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?
提交通过
评测结果:Accepted