QOJ.ac

QOJ

Time Limit: 1.0 s Memory Limit: 256 MB Total points: 160

#16642. AKVARIJ

Statistics

Mirko 最近安装了一个新的屏幕保护程序。如果他离开键盘五分钟,屏幕上就会显示一个带有动画鱼的水族箱画面。该屏幕保护程序具有自定义(虚拟的、沙质的)水族箱底部形状以及水位的设置。

水族箱可以在二维笛卡尔坐标系中表示为一个宽为 $N - 1$ 列的形状,其中 $N$ 是一个正整数。水族箱的左侧墙壁的 x 坐标为 $0$,右侧墙壁的 x 坐标为 $N - 1$。水族箱底部的每个整数 x 坐标(我们用 $i$ 表示)从 $0$ 到 $N - 1$ 都有一个可单独调节的高度 $H_i$。在任意两个相邻的整数 x 坐标 $i$ 和 $i + 1$ 之间,底部可以由连接点 $(i, H_i)$ 和 $(i + 1, H_{i + 1})$ 的线段来描述。

如果水位设置为 $h$,水将充满直线 $y = h$ 与水族箱底部之间的区域。如果水族箱底部的某一部分高于水位 $h$,它就会形成一个岛屿,不会被淹没。

对于不同的水族箱底部形状,Mirko 想要知道屏幕上被水覆盖的总面积。请帮助 Mirko 找到他问题的答案(除了 42 以外)。

输入格式

输入的第一行包含两个正整数 $N$($3 \le N \le 100\,000$,底部的长度)和 $M$($1 \le M \le 100\,000$,询问的数量)。

第二行包含 $N$ 个空格分隔的非负整数 $H_i$($0 \le H_i \le 1000$),表示初始的底部高度。

接下来的 $M$ 行,每行包含一个以下两种类型之一的询问:

  • Q h – 如果水位设置为 $h$($0 \le h \le 1000$),在当前的底部形状下,被水覆盖的屏幕总面积是多少?
  • U i h – Mirko 决定将 x 坐标为 $i$($0 \le i \le N - 1$)处的底部高度修改为 $h$($0 \le h \le 1000$);换句话说,即设置 $H_i = h$。

输出格式

对于每个类型为 Q 的询问,输出一行,包含所需的面积,四舍五入保留恰好三位小数。允许输出的面积与官方答案的绝对误差不超过 $0.001$。

样例

输入样例 1

3 2 
20 20 20 
Q 20 
Q 30

输出样例 1

0.000 
20.000

输入样例 2

3 5 
0 2 0 
Q 2 
U 1 1 
Q 1 
U 1 10 
Q 5

输出样例 2

2.000 
1.000 
2.500

输入样例 3

7 7 
0 2 1 3 2 1 0 
Q 1 
Q 2 
Q 3 
U 3 0 
Q 1 
Q 2 
Q 3

输出样例 3

0.750 
3.750 
9.000 
1.500 
6.000 
12.000

说明

第三个样例的解释:下图左侧显示了在进行 U 类型修改之前的状况,右侧显示了修改之后的状况,此时水位 $h = 2$(对应询问 Q 2)。在第一幅图中,被水淹没的面积等于 $3.75$,而在第二幅图中,该面积为 $6$。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.