题目描述
费迪亚和萨沙是朋友,所以萨沙项知道关于费迪亚的一切。
费迪亚把他的耐心放在一个无限大的碗里。
但是,与碗不同,费迪亚的耐心不是无限的,费迪亚总共有$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}$ 时你才会拿到该测试点的分。
样例
样例 1
输入:
6
1 2 1
1 4 -3
3 1 6 1
3 1 6 3
3 1 6 4
3 1 6 5
输出:
5
5.666667
6
-1
样例 2
输入:
10
1 2 2
1 4 4
1 7 -10
3 2 4 1
3 5 6 0
3 1 15 1
2 4
3 1 15 1
1 8 1
3 1 15 1
输出:
-1
5
8.7
8.1
-1
样例 3
输入:
5
1 1000 9999999
1 2000 -9999
3 1000 2000 0
2 1000
3 1000 2002 1
输出:
1000
2000.0001
样例解释
在第一个样例中,$3$类型的所有查询都包含所有事件,其模拟如下:

数据范围与子任务
| 子任务 | 分值 | 数据范围 | |
|---|---|---|---|
| 1 | 20% | q ≤ 100 |
|
| 2 | 30% | q ≤ 2000 |
|
| 3 | 50% | q ≤ 10⁵ |
- 对于 100% 的数据:
1 ≤ q ≤ 10⁵,1 ≤ t, l, r ≤ 10⁹,−10⁹ ≤ s ≤ 10⁹,0 ≤ v ≤ 10⁹。
