CF1109C Sasha and a Patient Friend

题目描述

费迪亚和萨沙是朋友,所以萨沙项知道关于费迪亚的一切。 费迪亚把他的耐心放在一个无限大的碗里。(真实么) 但是,与碗不同,费迪亚的耐心不是无限的,费迪亚总共有$v$升的耐心,一旦$v$等于$0$,碗将立即破裂。 碗里有一个水龙头,可以每秒增加$s$升的耐心。请注意,$s$可能是负数,在这种情况下,水龙头会吸入耐心(……) 萨沙可以做不同的事情,所以他可以改变水龙头的速度。萨沙所做的所有动作都可以表示为$q$次操作。有三种类型的操作: ```1 t s```-添加一个新速度,意味着从第$t$秒开始,水龙头的速度将等于$s$。 ```2 t```-删除第$t$秒发生的操作。保证此类操作的存在。 ```3 l r v```-萨沙想知道:如果按照所有$l \le t\le r$的操作来执行,那么碗何时会破裂。如果碗在规定时间内没发生破裂,那么答案将是$-1$. 由于萨沙不想检查费迪亚的耐心结束后会发生什么,所以他请求你帮助他,并回答每一个第$3$类问题。 保证在任何时刻,不会有两个事件同时发生。

输入格式

第一行包含一个整数$q$($1\le q\le 10^5 $),表示查询的数量。 接下来的每一行$q$都有以下格式之一: ```1 t s```$(1\le t\le 10^9,-10^9\le s\le 10^9)$,含义如题。 ```2 t```$(1\le t\le 10^9)$,含义如题。 ```3 l r v```$(1\le l\le r\le 10^9,0\le v\le 10^9$),含义如题。 保证所有查询中的$t$、$s$、$l$、$r$、$v$都是整数。 另外,保证至少有一个$3$类型的查询。

输出格式

对于第$3$种类型的每个查询,输出一个整数,表示结果。 如果绝对或相对误差不超过$10^{-6}$,您的答案将被视为正确。 也就是说,你的答案是$a$,测试点的答案是$b$。当且仅当$\frac{∣a−b∣}{max(1,∣b∣)} \le 10 ^{−6}$ 时你才会拿到该测试点的分。 ### 样例解释 在第一个样例中,$3$类型的所有查询都包含所有事件,其模拟如下: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1109C/e6b9ddce42caf511dce3830843e250b2079322ce.png) Translated by 桂梓清 2022.1.4

说明/提示

In the first example all the queries of the $ 3 $ -rd type cover all the events, it's simulation is following: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1109C/e6b9ddce42caf511dce3830843e250b2079322ce.png)